@charset "UTF-8";
/*$custom-control-indicator-checked-color: $primary;
$custom-control-indicator-checked-border-color: $gray-300;
$custom-control-indicator-checked-bg: #ffffff;
$custom-control-indicator-bg:$primary;*/
.btn-text-primary {
  color: #43d477 !important;
}
.btn-text-primary:hover {
  color: #ffffff !important;
  background-color: #43d477 !important;
  border-color: #43d477 !important;
}
.btn-text-primary:focus, .btn-text-primary.focus {
  box-shadow: 0 0 0 0 rgba(67, 212, 119, 0.5) !important;
}
.btn-text-primary.disabled, .btn-text-primary:disabled {
  color: #43d477 !important;
  background-color: transparent !important;
}

.btn-text-secondary {
  color: #1f3b64 !important;
}
.btn-text-secondary:hover {
  color: #ffffff !important;
  background-color: #1f3b64 !important;
  border-color: #1f3b64 !important;
}
.btn-text-secondary:focus, .btn-text-secondary.focus {
  box-shadow: 0 0 0 0 rgba(31, 59, 100, 0.5) !important;
}
.btn-text-secondary.disabled, .btn-text-secondary:disabled {
  color: #1f3b64 !important;
  background-color: transparent !important;
}

.btn-text-success {
  color: #e7f4f0 !important;
}
.btn-text-success:hover {
  color: #ffffff !important;
  background-color: #e7f4f0 !important;
  border-color: #e7f4f0 !important;
}
.btn-text-success:focus, .btn-text-success.focus {
  box-shadow: 0 0 0 0 rgba(231, 244, 240, 0.5) !important;
}
.btn-text-success.disabled, .btn-text-success:disabled {
  color: #e7f4f0 !important;
  background-color: transparent !important;
}

.btn-text-info {
  color: #ebf7ff !important;
}
.btn-text-info:hover {
  color: #ffffff !important;
  background-color: #ebf7ff !important;
  border-color: #ebf7ff !important;
}
.btn-text-info:focus, .btn-text-info.focus {
  box-shadow: 0 0 0 0 rgba(235, 247, 255, 0.5) !important;
}
.btn-text-info.disabled, .btn-text-info:disabled {
  color: #ebf7ff !important;
  background-color: transparent !important;
}

.btn-text-warning {
  color: #ffab00 !important;
}
.btn-text-warning:hover {
  color: #ffffff !important;
  background-color: #ffab00 !important;
  border-color: #ffab00 !important;
}
.btn-text-warning:focus, .btn-text-warning.focus {
  box-shadow: 0 0 0 0 rgba(255, 171, 0, 0.5) !important;
}
.btn-text-warning.disabled, .btn-text-warning:disabled {
  color: #ffab00 !important;
  background-color: transparent !important;
}

.btn-text-danger {
  color: #f63c3c !important;
}
.btn-text-danger:hover {
  color: #ffffff !important;
  background-color: #f63c3c !important;
  border-color: #f63c3c !important;
}
.btn-text-danger:focus, .btn-text-danger.focus {
  box-shadow: 0 0 0 0 rgba(246, 60, 60, 0.5) !important;
}
.btn-text-danger.disabled, .btn-text-danger:disabled {
  color: #f63c3c !important;
  background-color: transparent !important;
}

.btn-text-light {
  color: #f9f9f9 !important;
}
.btn-text-light:hover {
  color: #ffffff !important;
  background-color: #f9f9f9 !important;
  border-color: #f9f9f9 !important;
}
.btn-text-light:focus, .btn-text-light.focus {
  box-shadow: 0 0 0 0 rgba(249, 249, 249, 0.5) !important;
}
.btn-text-light.disabled, .btn-text-light:disabled {
  color: #f9f9f9 !important;
  background-color: transparent !important;
}

.btn-text-dark {
  color: #343434 !important;
}
.btn-text-dark:hover {
  color: #ffffff !important;
  background-color: #343434 !important;
  border-color: #343434 !important;
}
.btn-text-dark:focus, .btn-text-dark.focus {
  box-shadow: 0 0 0 0 rgba(52, 52, 52, 0.5) !important;
}
.btn-text-dark.disabled, .btn-text-dark:disabled {
  color: #343434 !important;
  background-color: transparent !important;
}

.btn-text-white {
  color: #ffffff !important;
}
.btn-text-white:hover {
  color: #212529 !important;
  background-color: #ffffff !important;
  border-color: #ffffff !important;
}
.btn-text-white:focus, .btn-text-white.focus {
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5) !important;
}
.btn-text-white.disabled, .btn-text-white:disabled {
  color: #ffffff !important;
  background-color: transparent !important;
}

.btn-text-gray {
  color: #818894 !important;
}
.btn-text-gray:hover {
  color: #ffffff !important;
  background-color: #818894 !important;
  border-color: #818894 !important;
}
.btn-text-gray:focus, .btn-text-gray.focus {
  box-shadow: 0 0 0 0 rgba(129, 136, 148, 0.5) !important;
}
.btn-text-gray.disabled, .btn-text-gray:disabled {
  color: #818894 !important;
  background-color: transparent !important;
}

.btn-text-gray300 {
  color: #ececec !important;
}
.btn-text-gray300:hover {
  color: #ffffff !important;
  background-color: #ececec !important;
  border-color: #ececec !important;
}
.btn-text-gray300:focus, .btn-text-gray300.focus {
  box-shadow: 0 0 0 0 rgba(236, 236, 236, 0.5) !important;
}
.btn-text-gray300.disabled, .btn-text-gray300:disabled {
  color: #ececec !important;
  background-color: transparent !important;
}

.btn-text-gray200 {
  color: #f1f1f1 !important;
}
.btn-text-gray200:hover {
  color: #ffffff !important;
  background-color: #f1f1f1 !important;
  border-color: #f1f1f1 !important;
}
.btn-text-gray200:focus, .btn-text-gray200.focus {
  box-shadow: 0 0 0 0 rgba(241, 241, 241, 0.5) !important;
}
.btn-text-gray200.disabled, .btn-text-gray200:disabled {
  color: #f1f1f1 !important;
  background-color: transparent !important;
}

.btn-text-gray100 {
  color: #f9f9f9 !important;
}
.btn-text-gray100:hover {
  color: #ffffff !important;
  background-color: #f9f9f9 !important;
  border-color: #f9f9f9 !important;
}
.btn-text-gray100:focus, .btn-text-gray100.focus {
  box-shadow: 0 0 0 0 rgba(249, 249, 249, 0.5) !important;
}
.btn-text-gray100.disabled, .btn-text-gray100:disabled {
  color: #f9f9f9 !important;
  background-color: transparent !important;
}

.btn-block {
  display: inline-flex !important;
}

:root {
  --blue: #27aeff;
  --indigo: #6610f2;
  --purple: #6f42c1;
  --pink: #e83e8c;
  --red: #dc3545;
  --orange: #fd7e14;
  --yellow: #ffc107;
  --green: #43d477;
  --teal: #20c997;
  --cyan: #17a2b8;
  --white: #ffffff;
  --gray: #6c757d;
  --gray-dark: #343a40;
  --panel-bg: #fbfbfd;
  --success: #e7f4f0;
  --info: #ebf7ff;
  --primary: #E2E8F0;
  --secondary: #1f3b64;
  --success: #e7f4f0;
  --info: #ebf7ff;
  --warning: #ffab00;
  --danger: #f63c3c;
  --light: #f9f9f9;
  --dark: #343434;
  --white: #ffffff;
  --gray: #818894;
  --gray300: #ececec;
  --gray200: #f1f1f1;
  --gray100: #f9f9f9;
  --primary-hover: #1FB354;
  --primary-border: #43d477;
  --primary-border-hover: #2aba5e;
  --primary-btn-shadow: 0 3px 6px 0 rgb(64 213 125 / 30%);
  --primary-btn-shadow-hover: 0 3px 8px 0 rgb(64 213 125 / 30%);
  --primary-btn-color: #ffffff;
  --primary-btn-color-hover: #ffffff;
  --secondary-hover: #162a47;
  --secondary-border: #162a47;
  --secondary-border-hover: #13243d;
  --secondary-btn-shadow: 0 3px 6px 0 rgb(64 213 125 / 30%);
  --secondary-btn-shadow-hover: 0 3px 8px 0 rgb(64 213 125 / 30%);
  --secondary-btn-color: #ffffff;
  --secondary-btn-color-hover: #ffffff;
  --font-family-base: "main-font-family";
  --font-family-rtl: "rtl-font-family";
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(52, 52, 52, 0);
}

article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
  display: block;
}

body {
  margin: 0;
  font-family: "main-font-family";
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3;
  color: #343434;
  text-align: left;
  background-color: #ffffff;
}

[tabindex="-1"]:focus:not(:focus-visible) {
  outline: 0 !important;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0;
}

p {
  margin-top: 0;
  margin-bottom: 1rem;
}

abbr[title],
abbr[data-original-title] {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  cursor: help;
  border-bottom: 0;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}

address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}

ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 1rem;
}

ol ol,
ul ul,
ol ul,
ul ol {
  margin-bottom: 0;
}

dt {
  font-weight: 700;
}

dd {
  margin-bottom: 0.5rem;
  margin-left: 0;
}

blockquote {
  margin: 0 0 1rem;
}

b,
strong {
  font-weight: bolder;
}

small {
  font-size: 80%;
}

sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

a {
  color: #343434;
  text-decoration: none;
  background-color: transparent;
}
a:hover {
  color: #343434;
  text-decoration: underline;
}

a:not([href]):not([class]) {
  color: inherit;
  text-decoration: none;
}
a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none;
}

pre,
code,
kbd,
samp {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}

pre {
  margin-top: 0;
  margin-bottom: 1rem;
  overflow: auto;
  -ms-overflow-style: scrollbar;
}

figure {
  margin: 0 0 1rem;
}

img {
  vertical-align: middle;
  border-style: none;
}

svg {
  overflow: hidden;
  vertical-align: middle;
}

table {
  border-collapse: collapse;
}

caption {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  color: #6c757d;
  text-align: left;
  caption-side: bottom;
}

th {
  text-align: inherit;
  text-align: -webkit-match-parent;
}

label {
  display: inline-block;
  margin-bottom: 0.5rem;
}

button {
  border-radius: 0;
}

button:focus:not(:focus-visible) {
  outline: 0;
}

input,
button,
select,
optgroup,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

[role=button] {
  cursor: pointer;
}

select {
  word-wrap: normal;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
  cursor: pointer;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

input[type=radio],
input[type=checkbox] {
  box-sizing: border-box;
  padding: 0;
}

textarea {
  overflow: auto;
  resize: vertical;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

legend {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
  line-height: inherit;
  color: inherit;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  outline-offset: -2px;
  -webkit-appearance: none;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}

output {
  display: inline-block;
}

summary {
  display: list-item;
  cursor: pointer;
}

template {
  display: none;
}

[hidden] {
  display: none !important;
}

.container,
.container-fluid,
.container-xl,
.container-lg,
.container-md,
.container-sm {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 576px) {
  .container-sm, .container {
    max-width: 100%;
  }
}
@media (min-width: 768px) {
  .container-md, .container-sm, .container {
    max-width: 769px;
  }
}
@media (min-width: 992px) {
  .container-lg, .container-md, .container-sm, .container {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container-xl, .container-lg, .container-md, .container-sm, .container {
    max-width: 1140px;
    margin-top:62px;
  }
}
.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

.no-gutters {
  margin-right: 0;
  margin-left: 0;
}
.no-gutters > .col,
.no-gutters > [class*=col-] {
  padding-right: 0;
  padding-left: 0;
}

.col-xl,
.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg,
.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md,
.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm,
.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col,
.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}

.col {
  flex-basis: 0;
  flex-grow: 1;
  max-width: 100%;
}

.row-cols-1 > * {
  flex: 0 0 100%;
  max-width: 100%;
}

.row-cols-2 > * {
  flex: 0 0 50%;
  max-width: 50%;
}

.row-cols-3 > * {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

.row-cols-4 > * {
  flex: 0 0 25%;
  max-width: 25%;
}

.row-cols-5 > * {
  flex: 0 0 20%;
  max-width: 20%;
}

.row-cols-6 > * {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
}

.col-auto {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

.col-1 {
  flex: 0 0 8.33333333%;
  max-width: 8.33333333%;
}

.col-2 {
  flex: 0 0 16.66666667%;
  max-width: 16.66666667%;
}

.col-3 {
  flex: 0 0 25%;
  max-width: 25%;
}

.col-4 {
  flex: 0 0 33.33333333%;
  max-width: 33.33333333%;
}

.col-5 {
  flex: 0 0 41.66666667%;
  max-width: 41.66666667%;
}

.col-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

.col-7 {
  flex: 0 0 58.33333333%;
  max-width: 58.33333333%;
}

.col-8 {
  flex: 0 0 66.66666667%;
  max-width: 66.66666667%;
}

.col-9 {
  flex: 0 0 75%;
  max-width: 75%;
}

.col-10 {
  flex: 0 0 83.33333333%;
  max-width: 83.33333333%;
}

.col-11 {
  flex: 0 0 91.66666667%;
  max-width: 91.66666667%;
}

.col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

.order-first {
  order: -1;
}

.order-last {
  order: 13;
}

.order-0 {
  order: 0;
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.order-3 {
  order: 3;
}

.order-4 {
  order: 4;
}

.order-5 {
  order: 5;
}

.order-6 {
  order: 6;
}

.order-7 {
  order: 7;
}

.order-8 {
  order: 8;
}

.order-9 {
  order: 9;
}

.order-10 {
  order: 10;
}

.order-11 {
  order: 11;
}

.order-12 {
  order: 12;
}

.offset-1 {
  margin-left: 8.33333333%;
}

.offset-2 {
  margin-left: 16.66666667%;
}

.offset-3 {
  margin-left: 25%;
}

.offset-4 {
  margin-left: 33.33333333%;
}

.offset-5 {
  margin-left: 41.66666667%;
}

.offset-6 {
  margin-left: 50%;
}

.offset-7 {
  margin-left: 58.33333333%;
}

.offset-8 {
  margin-left: 66.66666667%;
}

.offset-9 {
  margin-left: 75%;
}

.offset-10 {
  margin-left: 83.33333333%;
}

.offset-11 {
  margin-left: 91.66666667%;
}

@media (min-width: 576px) {
  .col-sm {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }
  .row-cols-sm-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .row-cols-sm-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .row-cols-sm-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .row-cols-sm-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .row-cols-sm-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
  }
  .row-cols-sm-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .col-sm-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }
  .col-sm-1 {
    flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }
  .col-sm-2 {
    flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .col-sm-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-sm-4 {
    flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .col-sm-5 {
    flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }
  .col-sm-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-sm-7 {
    flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }
  .col-sm-8 {
    flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }
  .col-sm-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-sm-10 {
    flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }
  .col-sm-11 {
    flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }
  .col-sm-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .order-sm-first {
    order: -1;
  }
  .order-sm-last {
    order: 13;
  }
  .order-sm-0 {
    order: 0;
  }
  .order-sm-1 {
    order: 1;
  }
  .order-sm-2 {
    order: 2;
  }
  .order-sm-3 {
    order: 3;
  }
  .order-sm-4 {
    order: 4;
  }
  .order-sm-5 {
    order: 5;
  }
  .order-sm-6 {
    order: 6;
  }
  .order-sm-7 {
    order: 7;
  }
  .order-sm-8 {
    order: 8;
  }
  .order-sm-9 {
    order: 9;
  }
  .order-sm-10 {
    order: 10;
  }
  .order-sm-11 {
    order: 11;
  }
  .order-sm-12 {
    order: 12;
  }
  .offset-sm-0 {
    margin-left: 0;
  }
  .offset-sm-1 {
    margin-left: 8.33333333%;
  }
  .offset-sm-2 {
    margin-left: 16.66666667%;
  }
  .offset-sm-3 {
    margin-left: 25%;
  }
  .offset-sm-4 {
    margin-left: 33.33333333%;
  }
  .offset-sm-5 {
    margin-left: 41.66666667%;
  }
  .offset-sm-6 {
    margin-left: 50%;
  }
  .offset-sm-7 {
    margin-left: 58.33333333%;
  }
  .offset-sm-8 {
    margin-left: 66.66666667%;
  }
  .offset-sm-9 {
    margin-left: 75%;
  }
  .offset-sm-10 {
    margin-left: 83.33333333%;
  }
  .offset-sm-11 {
    margin-left: 91.66666667%;
  }
}
@media (min-width: 768px) {
  .col-md {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }
  .row-cols-md-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .row-cols-md-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .row-cols-md-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .row-cols-md-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .row-cols-md-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
  }
  .row-cols-md-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .col-md-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }
  .col-md-1 {
    flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }
  .col-md-2 {
    flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .col-md-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-md-4 {
    flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .col-md-5 {
    flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }
  .col-md-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-md-7 {
    flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }
  .col-md-8 {
    flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }
  .col-md-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-md-10 {
    flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }
  .col-md-11 {
    flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }
  .col-md-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .order-md-first {
    order: -1;
  }
  .order-md-last {
    order: 13;
  }
  .order-md-0 {
    order: 0;
  }
  .order-md-1 {
    order: 1;
  }
  .order-md-2 {
    order: 2;
  }
  .order-md-3 {
    order: 3;
  }
  .order-md-4 {
    order: 4;
  }
  .order-md-5 {
    order: 5;
  }
  .order-md-6 {
    order: 6;
  }
  .order-md-7 {
    order: 7;
  }
  .order-md-8 {
    order: 8;
  }
  .order-md-9 {
    order: 9;
  }
  .order-md-10 {
    order: 10;
  }
  .order-md-11 {
    order: 11;
  }
  .order-md-12 {
    order: 12;
  }
  .offset-md-0 {
    margin-left: 0;
  }
  .offset-md-1 {
    margin-left: 8.33333333%;
  }
  .offset-md-2 {
    margin-left: 16.66666667%;
  }
  .offset-md-3 {
    margin-left: 25%;
  }
  .offset-md-4 {
    margin-left: 33.33333333%;
  }
  .offset-md-5 {
    margin-left: 41.66666667%;
  }
  .offset-md-6 {
    margin-left: 50%;
  }
  .offset-md-7 {
    margin-left: 58.33333333%;
  }
  .offset-md-8 {
    margin-left: 66.66666667%;
  }
  .offset-md-9 {
    margin-left: 75%;
  }
  .offset-md-10 {
    margin-left: 83.33333333%;
  }
  .offset-md-11 {
    margin-left: 91.66666667%;
  }
}
@media (min-width: 992px) {
  .col-lg {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }
  .row-cols-lg-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .row-cols-lg-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .row-cols-lg-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .row-cols-lg-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .row-cols-lg-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
  }
  .row-cols-lg-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .col-lg-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }
  .col-lg-1 {
    flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }
  .col-lg-2 {
    flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .col-lg-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-lg-4 {
    flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .col-lg-5 {
    flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }
  .col-lg-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-lg-7 {
    flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }
  .col-lg-8 {
    flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }
  .col-lg-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-lg-10 {
    flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }
  .col-lg-11 {
    flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }
  .col-lg-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .order-lg-first {
    order: -1;
  }
  .order-lg-last {
    order: 13;
  }
  .order-lg-0 {
    order: 0;
  }
  .order-lg-1 {
    order: 1;
  }
  .order-lg-2 {
    order: 2;
  }
  .order-lg-3 {
    order: 3;
  }
  .order-lg-4 {
    order: 4;
  }
  .order-lg-5 {
    order: 5;
  }
  .order-lg-6 {
    order: 6;
  }
  .order-lg-7 {
    order: 7;
  }
  .order-lg-8 {
    order: 8;
  }
  .order-lg-9 {
    order: 9;
  }
  .order-lg-10 {
    order: 10;
  }
  .order-lg-11 {
    order: 11;
  }
  .order-lg-12 {
    order: 12;
  }
  .offset-lg-0 {
    margin-left: 0;
  }
  .offset-lg-1 {
    margin-left: 8.33333333%;
  }
  .offset-lg-2 {
    margin-left: 16.66666667%;
  }
  .offset-lg-3 {
    margin-left: 25%;
  }
  .offset-lg-4 {
    margin-left: 33.33333333%;
  }
  .offset-lg-5 {
    margin-left: 41.66666667%;
  }
  .offset-lg-6 {
    margin-left: 50%;
  }
  .offset-lg-7 {
    margin-left: 58.33333333%;
  }
  .offset-lg-8 {
    margin-left: 66.66666667%;
  }
  .offset-lg-9 {
    margin-left: 75%;
  }
  .offset-lg-10 {
    margin-left: 83.33333333%;
  }
  .offset-lg-11 {
    margin-left: 91.66666667%;
  }
}
@media (min-width: 1200px) {
  .col-xl {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }
  .row-cols-xl-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .row-cols-xl-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .row-cols-xl-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .row-cols-xl-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .row-cols-xl-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
  }
  .row-cols-xl-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .col-xl-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }
  .col-xl-1 {
    flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }
  .col-xl-2 {
    flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .col-xl-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-xl-4 {
    flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .col-xl-5 {
    flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }
  .col-xl-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-xl-7 {
    flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }
  .col-xl-8 {
    flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }
  .col-xl-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-xl-10 {
    flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }
  .col-xl-11 {
    flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }
  .col-xl-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .order-xl-first {
    order: -1;
  }
  .order-xl-last {
    order: 13;
  }
  .order-xl-0 {
    order: 0;
  }
  .order-xl-1 {
    order: 1;
  }
  .order-xl-2 {
    order: 2;
  }
  .order-xl-3 {
    order: 3;
  }
  .order-xl-4 {
    order: 4;
  }
  .order-xl-5 {
    order: 5;
  }
  .order-xl-6 {
    order: 6;
  }
  .order-xl-7 {
    order: 7;
  }
  .order-xl-8 {
    order: 8;
  }
  .order-xl-9 {
    order: 9;
  }
  .order-xl-10 {
    order: 10;
  }
  .order-xl-11 {
    order: 11;
  }
  .order-xl-12 {
    order: 12;
  }
  .offset-xl-0 {
    margin-left: 0;
  }
  .offset-xl-1 {
    margin-left: 8.33333333%;
  }
  .offset-xl-2 {
    margin-left: 16.66666667%;
  }
  .offset-xl-3 {
    margin-left: 25%;
  }
  .offset-xl-4 {
    margin-left: 33.33333333%;
  }
  .offset-xl-5 {
    margin-left: 41.66666667%;
  }
  .offset-xl-6 {
    margin-left: 50%;
  }
  .offset-xl-7 {
    margin-left: 58.33333333%;
  }
  .offset-xl-8 {
    margin-left: 66.66666667%;
  }
  .offset-xl-9 {
    margin-left: 75%;
  }
  .offset-xl-10 {
    margin-left: 83.33333333%;
  }
  .offset-xl-11 {
    margin-left: 91.66666667%;
  }
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  margin-bottom: 0;
  font-weight: bold;
  line-height: 1.3;
}

h1, .h1 {
  font-size: 1.6rem;
}

h2, .h2 {
  font-size: 1.4rem;
}

h3, .h3 {
  font-size: 1.2rem;
}

h4, .h4 {
  font-size: 1rem;
}

h5, .h5 {
  font-size: 1rem;
}

h6, .h6 {
  font-size: 1rem;
}

.lead {
  font-size: 1.25rem;
  font-weight: 300;
}

.display-1 {
  font-size: 6rem;
  font-weight: 300;
  line-height: 1.3;
}

.display-2 {
  font-size: 5.5rem;
  font-weight: 300;
  line-height: 1.3;
}

.display-3 {
  font-size: 4.5rem;
  font-weight: 300;
  line-height: 1.3;
}

.display-4 {
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1.3;
}

hr {
  margin-top: 16px;
  margin-bottom: 16px;
  border: 0;
  border-top: 1px solid #f1f1f1;
}

small,
.small {
  font-size: 0.875em;
  font-weight: 400;
}

mark,
.mark {
  padding: 0.2em;
  background-color: #fcf8e3;
}

.list-unstyled {
  padding-left: 0;
  list-style: none;
}

.list-inline {
  padding-left: 0;
  list-style: none;
}

.list-inline-item {
  display: inline-block;
}
.list-inline-item:not(:last-child) {
  margin-right: 0.5rem;
}

.initialism {
  font-size: 90%;
  text-transform: uppercase;
}

.blockquote {
  margin-bottom: 20px;
  font-size: 1.25rem;
}

.blockquote-footer {
  display: block;
  font-size: 0.875em;
  color: #6c757d;
}
.blockquote-footer::before {
  content: "— ";
}

.list-group {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  border-radius: 0.3125rem;
}

.list-group-item-action {
  width: 100%;
  color: #495057;
  text-align: inherit;
}
.list-group-item-action:hover, .list-group-item-action:focus {
  z-index: 1;
  color: #495057;
  text-decoration: none;
  background-color: #f9f9f9;
}
.list-group-item-action:active {
  color: #343434;
  background-color: #f1f1f1;
}

.list-group-item {
  position: relative;
  display: block;
  padding: 0.75rem 1.25rem;
  background-color: #ffffff;
  border: 1px solid rgba(52, 52, 52, 0.125);
}
.list-group-item:first-child {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}
.list-group-item:last-child {
  border-bottom-right-radius: inherit;
  border-bottom-left-radius: inherit;
}
.list-group-item.disabled, .list-group-item:disabled {
  color: #6c757d;
  pointer-events: none;
  background-color: #ffffff;
}
.list-group-item.active {
  z-index: 2;
  color: #ffffff;
  background-color: #43d477;
  border-color: #43d477;
}
.list-group-item + .list-group-item {
  border-top-width: 0;
}
.list-group-item + .list-group-item.active {
  margin-top: -1px;
  border-top-width: 1px;
}

.list-group-horizontal {
  flex-direction: row;
}
.list-group-horizontal > .list-group-item:first-child {
  border-bottom-left-radius: 0.3125rem;
  border-top-right-radius: 0;
}
.list-group-horizontal > .list-group-item:last-child {
  border-top-right-radius: 0.3125rem;
  border-bottom-left-radius: 0;
}
.list-group-horizontal > .list-group-item.active {
  margin-top: 0;
}
.list-group-horizontal > .list-group-item + .list-group-item {
  border-top-width: 1px;
  border-left-width: 0;
}
.list-group-horizontal > .list-group-item + .list-group-item.active {
  margin-left: -1px;
  border-left-width: 1px;
}

@media (min-width: 576px) {
  .list-group-horizontal-sm {
    flex-direction: row;
  }
  .list-group-horizontal-sm > .list-group-item:first-child {
    border-bottom-left-radius: 0.3125rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-sm > .list-group-item:last-child {
    border-top-right-radius: 0.3125rem;
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-sm > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-sm > .list-group-item + .list-group-item {
    border-top-width: 1px;
    border-left-width: 0;
  }
  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
    margin-left: -1px;
    border-left-width: 1px;
  }
}
@media (min-width: 768px) {
  .list-group-horizontal-md {
    flex-direction: row;
  }
  .list-group-horizontal-md > .list-group-item:first-child {
    border-bottom-left-radius: 0.3125rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-md > .list-group-item:last-child {
    border-top-right-radius: 0.3125rem;
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-md > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-md > .list-group-item + .list-group-item {
    border-top-width: 1px;
    border-left-width: 0;
  }
  .list-group-horizontal-md > .list-group-item + .list-group-item.active {
    margin-left: -1px;
    border-left-width: 1px;
  }
}
@media (min-width: 992px) {
  .list-group-horizontal-lg {
    flex-direction: row;
  }
  .list-group-horizontal-lg > .list-group-item:first-child {
    border-bottom-left-radius: 0.3125rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-lg > .list-group-item:last-child {
    border-top-right-radius: 0.3125rem;
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-lg > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-lg > .list-group-item + .list-group-item {
    border-top-width: 1px;
    border-left-width: 0;
  }
  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
    margin-left: -1px;
    border-left-width: 1px;
  }
}
@media (min-width: 1200px) {
  .list-group-horizontal-xl {
    flex-direction: row;
  }
  .list-group-horizontal-xl > .list-group-item:first-child {
    border-bottom-left-radius: 0.3125rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-xl > .list-group-item:last-child {
    border-top-right-radius: 0.3125rem;
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-xl > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-xl > .list-group-item + .list-group-item {
    border-top-width: 1px;
    border-left-width: 0;
  }
  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
    margin-left: -1px;
    border-left-width: 1px;
  }
}
.list-group-flush {
  border-radius: 0;
}
.list-group-flush > .list-group-item {
  border-width: 0 0 1px;
}
.list-group-flush > .list-group-item:last-child {
  border-bottom-width: 0;
}

.list-group-item-primary {
  color: #3c8757;
  background-color: #caf3d9;
}
.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
  color: #3c8757;
  background-color: #b5eeca;
}
.list-group-item-primary.list-group-item-action.active {
  color: #ffffff;
  background-color: #3c8757;
  border-color: #3c8757;
}

.list-group-item-secondary {
  color: #29384d;
  background-color: #c0c8d4;
}
.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
  color: #29384d;
  background-color: #b1bbca;
}
.list-group-item-secondary.list-group-item-action.active {
  color: #ffffff;
  background-color: #29384d;
  border-color: #29384d;
}

.list-group-item-success {
  color: #919896;
  background-color: #f8fcfb;
}
.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
  color: #919896;
  background-color: #e6f4f1;
}
.list-group-item-success.list-group-item-action.active {
  color: #ffffff;
  background-color: #919896;
  border-color: #919896;
}

.list-group-item-info {
  color: #93999e;
  background-color: #f9fdff;
}
.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
  color: #93999e;
  background-color: #e0f5ff;
}
.list-group-item-info.list-group-item-action.active {
  color: #ffffff;
  background-color: #93999e;
  border-color: #93999e;
}

.list-group-item-warning {
  color: #9e7219;
  background-color: #ffe7b8;
}
.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
  color: #9e7219;
  background-color: #ffde9f;
}
.list-group-item-warning.list-group-item-action.active {
  color: #ffffff;
  background-color: #9e7219;
  border-color: #9e7219;
}

.list-group-item-danger {
  color: #993838;
  background-color: #fcc8c8;
}
.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
  color: #993838;
  background-color: #fbb0b0;
}
.list-group-item-danger.list-group-item-action.active {
  color: #ffffff;
  background-color: #993838;
  border-color: #993838;
}

.list-group-item-light {
  color: #9a9a9a;
  background-color: #fdfdfd;
}
.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
  color: #9a9a9a;
  background-color: #f0f0f0;
}
.list-group-item-light.list-group-item-action.active {
  color: #ffffff;
  background-color: #9a9a9a;
  border-color: #9a9a9a;
}

.list-group-item-dark {
  color: #343434;
  background-color: #c6c6c6;
}
.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
  color: #343434;
  background-color: #b9b9b9;
}
.list-group-item-dark.list-group-item-action.active {
  color: #ffffff;
  background-color: #343434;
  border-color: #343434;
}

.list-group-item-white {
  color: #9e9e9e;
  background-color: white;
}
.list-group-item-white.list-group-item-action:hover, .list-group-item-white.list-group-item-action:focus {
  color: #9e9e9e;
  background-color: #f2f2f2;
}
.list-group-item-white.list-group-item-action.active {
  color: #ffffff;
  background-color: #9e9e9e;
  border-color: #9e9e9e;
}

.list-group-item-gray {
  color: #5c6066;
  background-color: #dcdee1;
}
.list-group-item-gray.list-group-item-action:hover, .list-group-item-gray.list-group-item-action:focus {
  color: #5c6066;
  background-color: #ced1d5;
}
.list-group-item-gray.list-group-item-action.active {
  color: #ffffff;
  background-color: #5c6066;
  border-color: #5c6066;
}

.list-group-item-gray300 {
  color: #949494;
  background-color: #fafafa;
}
.list-group-item-gray300.list-group-item-action:hover, .list-group-item-gray300.list-group-item-action:focus {
  color: #949494;
  background-color: #ededed;
}
.list-group-item-gray300.list-group-item-action.active {
  color: #ffffff;
  background-color: #949494;
  border-color: #949494;
}

.list-group-item-gray200 {
  color: #969696;
  background-color: #fbfbfb;
}
.list-group-item-gray200.list-group-item-action:hover, .list-group-item-gray200.list-group-item-action:focus {
  color: #969696;
  background-color: #eeeeee;
}
.list-group-item-gray200.list-group-item-action.active {
  color: #ffffff;
  background-color: #969696;
  border-color: #969696;
}

.list-group-item-gray100 {
  color: #9a9a9a;
  background-color: #fdfdfd;
}
.list-group-item-gray100.list-group-item-action:hover, .list-group-item-gray100.list-group-item-action:focus {
  color: #9a9a9a;
  background-color: #f0f0f0;
}
.list-group-item-gray100.list-group-item-action.active {
  color: #ffffff;
  background-color: #9a9a9a;
  border-color: #9a9a9a;
}

.media {
  display: flex;
  align-items: flex-start;
}

.media-body {
  flex: 1;
}

.badge {
  display: inline-block;
  padding: 0 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 0.3125rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .badge {
    transition: none;
  }
}
a.badge:hover, a.badge:focus {
  text-decoration: none;
}

.badge:empty {
  display: none;
}

.btn .badge {
  position: relative;
  top: -1px;
}

.badge-pill {
  padding-right: 0.6em;
  padding-left: 0.6em;
  border-radius: 10rem;
}

.badge-primary {
  color: #ffffff;
  background-color: #43d477;
}
a.badge-primary:hover, a.badge-primary:focus {
  color: #ffffff;
  background-color: #2aba5e;
}
a.badge-primary:focus, a.badge-primary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(67, 212, 119, 0.5);
}

.badge-secondary {
  color: #ffffff;
  background-color: #1f3b64;
}
a.badge-secondary:hover, a.badge-secondary:focus {
  color: #ffffff;
  background-color: #13243d;
}
a.badge-secondary:focus, a.badge-secondary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(31, 59, 100, 0.5);
}

.badge-success {
  color: #ffffff;
  background-color: #e7f4f0;
}
a.badge-success:hover, a.badge-success:focus {
  color: #ffffff;
  background-color: #c4e4da;
}
a.badge-success:focus, a.badge-success.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(231, 244, 240, 0.5);
}

.badge-info {
  color: #ffffff;
  background-color: #ebf7ff;
}
a.badge-info:hover, a.badge-info:focus {
  color: #ffffff;
  background-color: #b8e3ff;
}
a.badge-info:focus, a.badge-info.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(235, 247, 255, 0.5);
}

.badge-warning {
  color: #ffffff;
  background-color: #ffab00;
}
a.badge-warning:hover, a.badge-warning:focus {
  color: #ffffff;
  background-color: #cc8900;
}
a.badge-warning:focus, a.badge-warning.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 171, 0, 0.5);
}

.badge-danger {
  color: #ffffff;
  background-color: #f63c3c;
}
a.badge-danger:hover, a.badge-danger:focus {
  color: #ffffff;
  background-color: #f40b0b;
}
a.badge-danger:focus, a.badge-danger.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(246, 60, 60, 0.5);
}

.badge-light {
  color: #ffffff;
  background-color: #f9f9f9;
}
a.badge-light:hover, a.badge-light:focus {
  color: #ffffff;
  background-color: #e0e0e0;
}
a.badge-light:focus, a.badge-light.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(249, 249, 249, 0.5);
}

.badge-dark {
  color: #ffffff;
  background-color: #343434;
}
a.badge-dark:hover, a.badge-dark:focus {
  color: #ffffff;
  background-color: #1b1b1b;
}
a.badge-dark:focus, a.badge-dark.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(52, 52, 52, 0.5);
}

.badge-white {
  color: #212529;
  background-color: #ffffff;
}
a.badge-white:hover, a.badge-white:focus {
  color: #212529;
  background-color: #e6e6e6;
}
a.badge-white:focus, a.badge-white.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5);
}

.badge-gray {
  color: #ffffff;
  background-color: #818894;
}
a.badge-gray:hover, a.badge-gray:focus {
  color: #ffffff;
  background-color: #686f7a;
}
a.badge-gray:focus, a.badge-gray.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(129, 136, 148, 0.5);
}

.badge-gray300 {
  color: #ffffff;
  background-color: #ececec;
}
a.badge-gray300:hover, a.badge-gray300:focus {
  color: #ffffff;
  background-color: lightgray;
}
a.badge-gray300:focus, a.badge-gray300.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(236, 236, 236, 0.5);
}

.badge-gray200 {
  color: #ffffff;
  background-color: #f1f1f1;
}
a.badge-gray200:hover, a.badge-gray200:focus {
  color: #ffffff;
  background-color: #d8d8d8;
}
a.badge-gray200:focus, a.badge-gray200.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(241, 241, 241, 0.5);
}

.badge-gray100 {
  color: #ffffff;
  background-color: #f9f9f9;
}
a.badge-gray100:hover, a.badge-gray100:focus {
  color: #ffffff;
  background-color: #e0e0e0;
}
a.badge-gray100:focus, a.badge-gray100.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(249, 249, 249, 0.5);
}

.nav {
  display: flex;
  flex-wrap: wrap;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.nav-link {
  display: block;
  padding: 0.5rem 1rem;
}
.nav-link:hover, .nav-link:focus {
  text-decoration: none;
}
.nav-link.disabled {
  color: #6c757d;
  pointer-events: none;
  cursor: default;
}

.nav-tabs {
  border-bottom: 1px solid #ececec;
}
.nav-tabs .nav-link {
  margin-bottom: -1px;
  background-color: transparent;
  border: 1px solid transparent;
  border-top-left-radius: 0.3125rem;
  border-top-right-radius: 0.3125rem;
}
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
  isolation: isolate;
  border-color: #f1f1f1 #f1f1f1 #ececec;
}
.nav-tabs .nav-link.disabled {
  color: #6c757d;
  background-color: transparent;
  border-color: transparent;
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  color: #495057;
  background-color: #ffffff;
  border-color: #ececec #ececec #ffffff;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.nav-pills .nav-link {
  background: none;
  border: 0;
  border-radius: 0.3125rem;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: #ffffff;
  background-color: #43d477;
}

.nav-fill > .nav-link,
.nav-fill .nav-item {
  flex: 1 1 auto;
  text-align: center;
}

.nav-justified > .nav-link,
.nav-justified .nav-item {
  flex-basis: 0;
  flex-grow: 1;
  text-align: center;
}

.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}

.navbar {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
}
.navbar .container,
.navbar .container-fluid,
.navbar .container-sm,
.navbar .container-md,
.navbar .container-lg,
.navbar .container-xl {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}
.navbar-brand {
  display: inline-block;
  padding-top: 0.3375rem;
  padding-bottom: 0.3375rem;
  margin-right: 20px;
  font-size: 1.25rem;
  line-height: inherit;
  white-space: nowrap;
}
.navbar-brand:hover, .navbar-brand:focus {
  text-decoration: none;
}

.navbar-nav {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.navbar-nav .nav-link {
  padding-right: 0;
  padding-left: 0;
}
.navbar-nav .dropdown-menu {
  position: static;
  float: none;
}

.navbar-text {
  display: inline-block;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.navbar-collapse {
  flex-basis: 100%;
  flex-grow: 1;
  align-items: center;
}

.navbar-toggler {
  padding: 0.25rem 0.75rem;
  font-size: 1.25rem;
  line-height: 1;
  background-color: transparent;
  border: 1px solid transparent;
  border-radius: 0.3125rem;
}
.navbar-toggler:hover, .navbar-toggler:focus {
  text-decoration: none;
}

.navbar-toggler-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  vertical-align: middle;
  content: "";
  background: 50%/100% 100% no-repeat;
}

.navbar-nav-scroll {
  max-height: 75vh;
  overflow-y: auto;
}

@media (max-width: 575.98px) {
  .navbar-expand-sm > .container,
  .navbar-expand-sm > .container-fluid,
  .navbar-expand-sm > .container-sm,
  .navbar-expand-sm > .container-md,
  .navbar-expand-sm > .container-lg,
  .navbar-expand-sm > .container-xl {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 576px) {
  .navbar-expand-sm {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-sm .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-sm .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-sm .navbar-nav .nav-link {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
  .navbar-expand-sm > .container,
  .navbar-expand-sm > .container-fluid,
  .navbar-expand-sm > .container-sm,
  .navbar-expand-sm > .container-md,
  .navbar-expand-sm > .container-lg,
  .navbar-expand-sm > .container-xl {
    flex-wrap: nowrap;
  }
  .navbar-expand-sm .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-sm .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-sm .navbar-toggler {
    display: none;
  }
}
@media (max-width: 767.98px) {
  .navbar-expand-md > .container,
  .navbar-expand-md > .container-fluid,
  .navbar-expand-md > .container-sm,
  .navbar-expand-md > .container-md,
  .navbar-expand-md > .container-lg,
  .navbar-expand-md > .container-xl {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .navbar-expand-md {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-md .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-md .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-md .navbar-nav .nav-link {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
  .navbar-expand-md > .container,
  .navbar-expand-md > .container-fluid,
  .navbar-expand-md > .container-sm,
  .navbar-expand-md > .container-md,
  .navbar-expand-md > .container-lg,
  .navbar-expand-md > .container-xl {
    flex-wrap: nowrap;
  }
  .navbar-expand-md .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-md .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-md .navbar-toggler {
    display: none;
  }
}
@media (max-width: 991.98px) {
  .navbar-expand-lg > .container,
  .navbar-expand-lg > .container-fluid,
  .navbar-expand-lg > .container-sm,
  .navbar-expand-lg > .container-md,
  .navbar-expand-lg > .container-lg,
  .navbar-expand-lg > .container-xl {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 992px) {
  .navbar-expand-lg {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-lg .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-lg .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-lg .navbar-nav .nav-link {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
  .navbar-expand-lg > .container,
  .navbar-expand-lg > .container-fluid,
  .navbar-expand-lg > .container-sm,
  .navbar-expand-lg > .container-md,
  .navbar-expand-lg > .container-lg,
  .navbar-expand-lg > .container-xl {
    flex-wrap: nowrap;
  }
  .navbar-expand-lg .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-lg .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-lg .navbar-toggler {
    display: none;
  }
}
@media (max-width: 1199.98px) {
  .navbar-expand-xl > .container,
  .navbar-expand-xl > .container-fluid,
  .navbar-expand-xl > .container-sm,
  .navbar-expand-xl > .container-md,
  .navbar-expand-xl > .container-lg,
  .navbar-expand-xl > .container-xl {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 1200px) {
  .navbar-expand-xl {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-xl .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-xl .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-xl .navbar-nav .nav-link {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
  .navbar-expand-xl > .container,
  .navbar-expand-xl > .container-fluid,
  .navbar-expand-xl > .container-sm,
  .navbar-expand-xl > .container-md,
  .navbar-expand-xl > .container-lg,
  .navbar-expand-xl > .container-xl {
    flex-wrap: nowrap;
  }
  .navbar-expand-xl .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-xl .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-xl .navbar-toggler {
    display: none;
  }
}
.navbar-expand {
  flex-flow: row nowrap;
  justify-content: flex-start;
}
.navbar-expand > .container,
.navbar-expand > .container-fluid,
.navbar-expand > .container-sm,
.navbar-expand > .container-md,
.navbar-expand > .container-lg,
.navbar-expand > .container-xl {
  padding-right: 0;
  padding-left: 0;
}
.navbar-expand .navbar-nav {
  flex-direction: row;
}
.navbar-expand .navbar-nav .dropdown-menu {
  position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}
.navbar-expand > .container,
.navbar-expand > .container-fluid,
.navbar-expand > .container-sm,
.navbar-expand > .container-md,
.navbar-expand > .container-lg,
.navbar-expand > .container-xl {
  flex-wrap: nowrap;
}
.navbar-expand .navbar-nav-scroll {
  overflow: visible;
}
.navbar-expand .navbar-collapse {
  display: flex !important;
  flex-basis: auto;
}
.navbar-expand .navbar-toggler {
  display: none;
}

.navbar-light .navbar-brand {
  color: rgba(52, 52, 52, 0.9);
}
.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
  color: rgba(52, 52, 52, 0.9);
}
.navbar-light .navbar-nav .nav-link {
  color: rgba(52, 52, 52, 0.5);
}
.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
  color: rgba(52, 52, 52, 0.7);
}
.navbar-light .navbar-nav .nav-link.disabled {
  color: rgba(52, 52, 52, 0.3);
}
.navbar-light .navbar-nav .show > .nav-link,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .nav-link.active {
  color: rgba(52, 52, 52, 0.9);
}
.navbar-light .navbar-toggler {
  color: rgba(52, 52, 52, 0.5);
  border-color: rgba(52, 52, 52, 0.1);
}
.navbar-light .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23ffffff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-light .navbar-text {
  color: rgba(52, 52, 52, 0.5);
}
.navbar-light .navbar-text a {
  color: rgba(52, 52, 52, 0.9);
}
.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
  color: rgba(52, 52, 52, 0.9);
}

.navbar-dark .navbar-brand {
  color: #ffffff;
}
.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
  color: #ffffff;
}
.navbar-dark .navbar-nav .nav-link {
  color: rgba(255, 255, 255, 0.5);
}
.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
  color: rgba(255, 255, 255, 0.75);
}
.navbar-dark .navbar-nav .nav-link.disabled {
  color: rgba(255, 255, 255, 0.25);
}
.navbar-dark .navbar-nav .show > .nav-link,
.navbar-dark .navbar-nav .active > .nav-link,
.navbar-dark .navbar-nav .nav-link.show,
.navbar-dark .navbar-nav .nav-link.active {
  color: #ffffff;
}
.navbar-dark .navbar-toggler {
  color: rgba(255, 255, 255, 0.5);
  border-color: rgba(255, 255, 255, 0.1);
}
.navbar-dark .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-dark .navbar-text {
  color: rgba(255, 255, 255, 0.5);
}
.navbar-dark .navbar-text a {
  color: #ffffff;
}
.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
  color: #ffffff;
}

.table {
  width: 100%;
  margin-bottom: 20px;
  color: #171347;
}
.table th,
.table td {
  padding: 0.75rem;
  vertical-align: top;
  border-top: 1px solid #ececec;
}
.table thead th {
  vertical-align: bottom;
  border-bottom: 2px solid #ececec;
}
.table tbody + tbody {
  border-top: 2px solid #ececec;
}

.table-sm th,
.table-sm td {
  padding: 0.3rem;
}

.table-bordered {
  border: 1px solid #ececec;
}
.table-bordered th,
.table-bordered td {
  border: 1px solid #ececec;
}
.table-bordered thead th,
.table-bordered thead td {
  border-bottom-width: 2px;
}

.table-borderless th,
.table-borderless td,
.table-borderless thead th,
.table-borderless tbody + tbody {
  border: 0;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(52, 52, 52, 0.05);
}

.table-hover tbody tr:hover {
  color: #171347;
  background-color: rgba(52, 52, 52, 0.075);
}

.table-primary,
.table-primary > th,
.table-primary > td {
  background-color: #caf3d9;
}
.table-primary th,
.table-primary td,
.table-primary thead th,
.table-primary tbody + tbody {
  border-color: #9de9b8;
}

.table-hover .table-primary:hover {
  background-color: #b5eeca;
}
.table-hover .table-primary:hover > td,
.table-hover .table-primary:hover > th {
  background-color: #b5eeca;
}

.table-secondary,
.table-secondary > th,
.table-secondary > td {
  background-color: #c0c8d4;
}
.table-secondary th,
.table-secondary td,
.table-secondary thead th,
.table-secondary tbody + tbody {
  border-color: #8b99ae;
}

.table-hover .table-secondary:hover {
  background-color: #b1bbca;
}
.table-hover .table-secondary:hover > td,
.table-hover .table-secondary:hover > th {
  background-color: #b1bbca;
}

.table-success,
.table-success > th,
.table-success > td {
  background-color: #f8fcfb;
}
.table-success th,
.table-success td,
.table-success thead th,
.table-success tbody + tbody {
  border-color: #f3f9f7;
}

.table-hover .table-success:hover {
  background-color: #e6f4f1;
}
.table-hover .table-success:hover > td,
.table-hover .table-success:hover > th {
  background-color: #e6f4f1;
}

.table-info,
.table-info > th,
.table-info > td {
  background-color: #f9fdff;
}
.table-info th,
.table-info td,
.table-info thead th,
.table-info tbody + tbody {
  border-color: #f5fbff;
}

.table-hover .table-info:hover {
  background-color: #e0f5ff;
}
.table-hover .table-info:hover > td,
.table-hover .table-info:hover > th {
  background-color: #e0f5ff;
}

.table-warning,
.table-warning > th,
.table-warning > td {
  background-color: #ffe7b8;
}
.table-warning th,
.table-warning td,
.table-warning thead th,
.table-warning tbody + tbody {
  border-color: #ffd37a;
}

.table-hover .table-warning:hover {
  background-color: #ffde9f;
}
.table-hover .table-warning:hover > td,
.table-hover .table-warning:hover > th {
  background-color: #ffde9f;
}

.table-danger,
.table-danger > th,
.table-danger > td {
  background-color: #fcc8c8;
}
.table-danger th,
.table-danger td,
.table-danger thead th,
.table-danger tbody + tbody {
  border-color: #fa9a9a;
}

.table-hover .table-danger:hover {
  background-color: #fbb0b0;
}
.table-hover .table-danger:hover > td,
.table-hover .table-danger:hover > th {
  background-color: #fbb0b0;
}

.table-light,
.table-light > th,
.table-light > td {
  background-color: #fdfdfd;
}
.table-light th,
.table-light td,
.table-light thead th,
.table-light tbody + tbody {
  border-color: #fcfcfc;
}

.table-hover .table-light:hover {
  background-color: #f0f0f0;
}
.table-hover .table-light:hover > td,
.table-hover .table-light:hover > th {
  background-color: #f0f0f0;
}

.table-dark,
.table-dark > th,
.table-dark > td {
  background-color: #c6c6c6;
}
.table-dark th,
.table-dark td,
.table-dark thead th,
.table-dark tbody + tbody {
  border-color: #959595;
}

.table-hover .table-dark:hover {
  background-color: #b9b9b9;
}
.table-hover .table-dark:hover > td,
.table-hover .table-dark:hover > th {
  background-color: #b9b9b9;
}

.table-white,
.table-white > th,
.table-white > td {
  background-color: white;
}
.table-white th,
.table-white td,
.table-white thead th,
.table-white tbody + tbody {
  border-color: white;
}

.table-hover .table-white:hover {
  background-color: #f2f2f2;
}
.table-hover .table-white:hover > td,
.table-hover .table-white:hover > th {
  background-color: #f2f2f2;
}

.table-gray,
.table-gray > th,
.table-gray > td {
  background-color: #dcdee1;
}
.table-gray th,
.table-gray td,
.table-gray thead th,
.table-gray tbody + tbody {
  border-color: #bdc1c7;
}

.table-hover .table-gray:hover {
  background-color: #ced1d5;
}
.table-hover .table-gray:hover > td,
.table-hover .table-gray:hover > th {
  background-color: #ced1d5;
}

.table-gray300,
.table-gray300 > th,
.table-gray300 > td {
  background-color: #fafafa;
}
.table-gray300 th,
.table-gray300 td,
.table-gray300 thead th,
.table-gray300 tbody + tbody {
  border-color: whitesmoke;
}

.table-hover .table-gray300:hover {
  background-color: #ededed;
}
.table-hover .table-gray300:hover > td,
.table-hover .table-gray300:hover > th {
  background-color: #ededed;
}

.table-gray200,
.table-gray200 > th,
.table-gray200 > td {
  background-color: #fbfbfb;
}
.table-gray200 th,
.table-gray200 td,
.table-gray200 thead th,
.table-gray200 tbody + tbody {
  border-color: #f8f8f8;
}

.table-hover .table-gray200:hover {
  background-color: #eeeeee;
}
.table-hover .table-gray200:hover > td,
.table-hover .table-gray200:hover > th {
  background-color: #eeeeee;
}

.table-gray100,
.table-gray100 > th,
.table-gray100 > td {
  background-color: #fdfdfd;
}
.table-gray100 th,
.table-gray100 td,
.table-gray100 thead th,
.table-gray100 tbody + tbody {
  border-color: #fcfcfc;
}

.table-hover .table-gray100:hover {
  background-color: #f0f0f0;
}
.table-hover .table-gray100:hover > td,
.table-hover .table-gray100:hover > th {
  background-color: #f0f0f0;
}

.table-active,
.table-active > th,
.table-active > td {
  background-color: rgba(52, 52, 52, 0.075);
}

.table-hover .table-active:hover {
  background-color: rgba(39, 39, 39, 0.075);
}
.table-hover .table-active:hover > td,
.table-hover .table-active:hover > th {
  background-color: rgba(39, 39, 39, 0.075);
}

.table .thead-dark th {
  color: #ffffff;
  background-color: #343a40;
  border-color: #454d55;
}
.table .thead-light th {
  color: #495057;
  background-color: #f1f1f1;
  border-color: #ececec;
}

.table-dark {
  color: #ffffff;
  background-color: #343a40;
}
.table-dark th,
.table-dark td,
.table-dark thead th {
  border-color: #454d55;
}
.table-dark.table-bordered {
  border: 0;
}
.table-dark.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(255, 255, 255, 0.05);
}
.table-dark.table-hover tbody tr:hover {
  color: #ffffff;
  background-color: rgba(255, 255, 255, 0.075);
}

@media (max-width: 575.98px) {
  .table-responsive-sm {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-sm > .table-bordered {
    border: 0;
  }
}
@media (max-width: 767.98px) {
  .table-responsive-md {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-md > .table-bordered {
    border: 0;
  }
}
@media (max-width: 991.98px) {
  .table-responsive-lg {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-lg > .table-bordered {
    border: 0;
  }
}
@media (max-width: 1199.98px) {
  .table-responsive-xl {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-xl > .table-bordered {
    border: 0;
  }
}
.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.table-responsive > .table-bordered {
  border: 0;
}

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  word-wrap: break-word;
  background-color: #ffffff;
  background-clip: border-box;
  border: 1px solid rgba(52, 52, 52, 0.125);
  border-radius: 0.3125rem;
}
.card > hr {
  margin-right: 0;
  margin-left: 0;
}
.card > .list-group {
  border-top: inherit;
  border-bottom: inherit;
}
.card > .list-group:first-child {
  border-top-width: 0;
  border-top-left-radius: calc(0.3125rem - 1px);
  border-top-right-radius: calc(0.3125rem - 1px);
}
.card > .list-group:last-child {
  border-bottom-width: 0;
  border-bottom-right-radius: calc(0.3125rem - 1px);
  border-bottom-left-radius: calc(0.3125rem - 1px);
}
.card > .card-header + .list-group,
.card > .list-group + .card-footer {
  border-top: 0;
}

.card-body {
  flex: 1 1 auto;
  min-height: 1px;
  padding: 1.25rem;
}

.card-title {
  margin-bottom: 0.75rem;
}

.card-subtitle {
  margin-top: -0.375rem;
  margin-bottom: 0;
}

.card-text:last-child {
  margin-bottom: 0;
}

.card-link:hover {
  text-decoration: none;
}
.card-link + .card-link {
  margin-left: 1.25rem;
}

.card-header {
  padding: 0.75rem 1.25rem;
  margin-bottom: 0;
  background-color: rgba(52, 52, 52, 0.03);
  border-bottom: 1px solid rgba(52, 52, 52, 0.125);
}
.card-header:first-child {
  border-radius: calc(0.3125rem - 1px) calc(0.3125rem - 1px) 0 0;
}

.card-footer {
  padding: 0.75rem 1.25rem;
  background-color: rgba(52, 52, 52, 0.03);
  border-top: 1px solid rgba(52, 52, 52, 0.125);
}
.card-footer:last-child {
  border-radius: 0 0 calc(0.3125rem - 1px) calc(0.3125rem - 1px);
}

.card-header-tabs {
  margin-right: -0.625rem;
  margin-bottom: -0.75rem;
  margin-left: -0.625rem;
  border-bottom: 0;
}

.card-header-pills {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}

.card-img-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 1.25rem;
  border-radius: calc(0.3125rem - 1px);
}

.card-img,
.card-img-top,
.card-img-bottom {
  flex-shrink: 0;
  width: 100%;
}

.card-img,
.card-img-top {
  border-top-left-radius: calc(0.3125rem - 1px);
  border-top-right-radius: calc(0.3125rem - 1px);
}

.card-img,
.card-img-bottom {
  border-bottom-right-radius: calc(0.3125rem - 1px);
  border-bottom-left-radius: calc(0.3125rem - 1px);
}

.card-deck .card {
  margin-bottom: 15px;
}
@media (min-width: 576px) {
  .card-deck {
    display: flex;
    flex-flow: row wrap;
    margin-right: -15px;
    margin-left: -15px;
  }
  .card-deck .card {
    flex: 1 0 0%;
    margin-right: 15px;
    margin-bottom: 0;
    margin-left: 15px;
  }
}

.card-group > .card {
  margin-bottom: 15px;
}
@media (min-width: 576px) {
  .card-group {
    display: flex;
    flex-flow: row wrap;
  }
  .card-group > .card {
    flex: 1 0 0%;
    margin-bottom: 0;
  }
  .card-group > .card + .card {
    margin-left: 0;
    border-left: 0;
  }
  .card-group > .card:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  .card-group > .card:not(:last-child) .card-img-top,
  .card-group > .card:not(:last-child) .card-header {
    border-top-right-radius: 0;
  }
  .card-group > .card:not(:last-child) .card-img-bottom,
  .card-group > .card:not(:last-child) .card-footer {
    border-bottom-right-radius: 0;
  }
  .card-group > .card:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
  .card-group > .card:not(:first-child) .card-img-top,
  .card-group > .card:not(:first-child) .card-header {
    border-top-left-radius: 0;
  }
  .card-group > .card:not(:first-child) .card-img-bottom,
  .card-group > .card:not(:first-child) .card-footer {
    border-bottom-left-radius: 0;
  }
}

.card-columns .card {
  margin-bottom: 0.75rem;
}
@media (min-width: 576px) {
  .card-columns {
    -moz-column-count: 3;
         column-count: 3;
    -moz-column-gap: 1.25rem;
         column-gap: 1.25rem;
    orphans: 1;
    widows: 1;
  }
  .card-columns .card {
    display: inline-block;
    width: 100%;
  }
}

.accordion {
  overflow-anchor: none;
}
.accordion > .card {
  overflow: hidden;
}
.accordion > .card:not(:last-of-type) {
  border-bottom: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.accordion > .card:not(:first-of-type) {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.accordion > .card > .card-header {
  border-radius: 0;
  margin-bottom: -1px;
}

.form-control {
  display: block;
  width: 100%;
  height: 2.5rem;
  padding: 0.5rem 1rem;
  font-family: "main-font-family";
  font-size: 0.75rem;
  font-weight: normal;
  line-height: 1.25;
  color: #343434;
  background-color: #ffffff;
  background-clip: padding-box;
  border: 1px solid #ececec;
  border-radius: 0.5rem;
  box-shadow: none;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-control {
    transition: none;
  }
}
.form-control::-ms-expand {
  background-color: transparent;
  border: 0;
}
.form-control:focus {
  color: #343434;
  background-color: #ffffff;
  border-color: #43d477;
  outline: 0;
  box-shadow: 1.5rem;
}
.form-control::-moz-placeholder {
  color: #818894;
  opacity: 1;
}
.form-control::placeholder {
  color: #818894;
  opacity: 1;
}
.form-control:disabled, .form-control[readonly] {
  background-color: #f1f1f1;
  opacity: 1;
}

input[type=date].form-control,
input[type=time].form-control,
input[type=datetime-local].form-control,
input[type=month].form-control {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

select.form-control:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #343434;
}
select.form-control:focus::-ms-value {
  color: #343434;
  background-color: #ffffff;
}

.form-control-file,
.form-control-range {
  display: block;
  width: 100%;
}

.col-form-label {
  padding-top: calc(0.5rem + 1px);
  padding-bottom: calc(0.5rem + 1px);
  margin-bottom: 0;
  font-size: inherit;
  line-height: 1.25;
}

.col-form-label-lg {
  padding-top: calc(0.5rem + 1px);
  padding-bottom: calc(0.5rem + 1px);
  font-size: 1.25rem;
  line-height: 1.5;
}

.col-form-label-sm {
  padding-top: calc(0.25rem + 1px);
  padding-bottom: calc(0.25rem + 1px);
  font-size: 1rem;
  line-height: 1.5;
}

.form-control-plaintext {
  display: block;
  width: 100%;
  padding: 0.5rem 0;
  margin-bottom: 0;
  font-size: 0.75rem;
  line-height: 1.25;
  color: #343434;
  background-color: transparent;
  border: solid transparent;
  border-width: 1px 0;
}
.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
  padding-right: 0;
  padding-left: 0;
}

.form-control-sm {
  height: calc(1.5em + 0.5rem + 2px);
  padding: 0.25rem 0.5rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0.625rem;
}

.form-control-lg {
  height: calc(1.5em + 1rem + 2px);
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: 0.9375rem;
}

select.form-control[size], select.form-control[multiple] {
  height: auto;
}

textarea.form-control {
  height: auto;
}

.form-group {
  margin-bottom: 1rem;
}

.form-text {
  display: block;
  margin-top: 0.25rem;
}

.form-row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -5px;
  margin-left: -5px;
}
.form-row > .col,
.form-row > [class*=col-] {
  padding-right: 5px;
  padding-left: 5px;
}

.form-check {
  position: relative;
  display: block;
  padding-left: 1.25rem;
}

.form-check-input {
  position: absolute;
  margin-top: 0.3rem;
  margin-left: -1.25rem;
}
.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
  color: #6c757d;
}

.form-check-label {
  margin-bottom: 0;
}

.form-check-inline {
  display: inline-flex;
  align-items: center;
  padding-left: 0;
  margin-right: 0.75rem;
}
.form-check-inline .form-check-input {
  position: static;
  margin-top: 0;
  margin-right: 0.3125rem;
  margin-left: 0;
}

.valid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 0.875em;
  color: #43d477;
}

.valid-tooltip {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.75rem;
  line-height: 1.3;
  color: #ffffff;
  background-color: rgba(67, 212, 119, 0.9);
  border-radius: 5px;
}
.form-row > .col > .valid-tooltip, .form-row > [class*=col-] > .valid-tooltip {
  left: 5px;
}

.was-validated :valid ~ .valid-feedback,
.was-validated :valid ~ .valid-tooltip,
.is-valid ~ .valid-feedback,
.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .form-control:valid, .form-control.is-valid {
  border-color: #43d477;
  padding-right: calc(1.25em + 1rem) !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2343d477' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.3125em + 0.25rem) center;
  background-size: calc(0.625em + 0.5rem) calc(0.625em + 0.5rem);
}
.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
  border-color: #43d477;
  box-shadow: 0 0 0 0.2rem rgba(67, 212, 119, 0.25);
}

.was-validated select.form-control:valid, select.form-control.is-valid {
  padding-right: 4rem !important;
  background-position: right 2rem center;
}

.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
  padding-right: calc(1.25em + 1rem);
  background-position: top calc(0.3125em + 0.25rem) right calc(0.3125em + 0.25rem);
}

.was-validated .custom-select:valid, .custom-select.is-valid {
  border-color: #43d477;
  padding-right: calc(0.75em + 2.75rem) !important;
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1rem center/8px 10px no-repeat, #ffffff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2343d477' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 2rem/calc(0.625em + 0.5rem) calc(0.625em + 0.5rem) no-repeat;
}
.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
  border-color: #43d477;
  box-shadow: 0 0 0 0.2rem rgba(67, 212, 119, 0.25);
}

.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
  color: #43d477;
}
.was-validated .form-check-input:valid ~ .valid-feedback,
.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
.form-check-input.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
  color: #43d477;
}
.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
  border-color: #43d477;
}
.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
  border-color: #6ddd95;
  background-color: #6ddd95;
}
.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(67, 212, 119, 0.25);
}
.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #43d477;
}

.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
  border-color: #43d477;
}
.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
  border-color: #43d477;
  box-shadow: 0 0 0 0.2rem rgba(67, 212, 119, 0.25);
}

.invalid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 0.875em;
  color: #f63c3c;
}

.invalid-tooltip {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.75rem;
  line-height: 1.3;
  color: #ffffff;
  background-color: rgba(246, 60, 60, 0.9);
  border-radius: 5px;
}
.form-row > .col > .invalid-tooltip, .form-row > [class*=col-] > .invalid-tooltip {
  left: 5px;
}

.was-validated :invalid ~ .invalid-feedback,
.was-validated :invalid ~ .invalid-tooltip,
.is-invalid ~ .invalid-feedback,
.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .form-control:invalid, .form-control.is-invalid {
  border-color: #f63c3c;
  padding-right: calc(1.25em + 1rem) !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23f63c3c' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23f63c3c' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.3125em + 0.25rem) center;
  background-size: calc(0.625em + 0.5rem) calc(0.625em + 0.5rem);
}
.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
  border-color: #f63c3c;
  box-shadow: 0 0 0 0.2rem rgba(246, 60, 60, 0.25);
}

.was-validated select.form-control:invalid, select.form-control.is-invalid {
  padding-right: 4rem !important;
  background-position: right 2rem center;
}

.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
  padding-right: calc(1.25em + 1rem);
  background-position: top calc(0.3125em + 0.25rem) right calc(0.3125em + 0.25rem);
}

.was-validated .custom-select:invalid, .custom-select.is-invalid {
  border-color: #f63c3c;
  padding-right: calc(0.75em + 2.75rem) !important;
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1rem center/8px 10px no-repeat, #ffffff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23f63c3c' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23f63c3c' stroke='none'/%3e%3c/svg%3e") center right 2rem/calc(0.625em + 0.5rem) calc(0.625em + 0.5rem) no-repeat;
}
.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
  border-color: #f63c3c;
  box-shadow: 0 0 0 0.2rem rgba(246, 60, 60, 0.25);
}

.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
  color: #f63c3c;
}
.was-validated .form-check-input:invalid ~ .invalid-feedback,
.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
  color: #f63c3c;
}
.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
  border-color: #f63c3c;
}
.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
  border-color: #f86d6d;
  background-color: #f86d6d;
}
.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(246, 60, 60, 0.25);
}
.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #f63c3c;
}

.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
  border-color: #f63c3c;
}
.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
  border-color: #f63c3c;
  box-shadow: 0 0 0 0.2rem rgba(246, 60, 60, 0.25);
}

.form-inline {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}
.form-inline .form-check {
  width: 100%;
}
@media (min-width: 576px) {
  .form-inline label {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
  }
  .form-inline .form-group {
    display: flex;
    flex: 0 0 auto;
    flex-flow: row wrap;
    align-items: center;
    margin-bottom: 0;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-plaintext {
    display: inline-block;
  }
  .form-inline .input-group,
  .form-inline .custom-select {
    width: auto;
  }
  .form-inline .form-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding-left: 0;
  }
  .form-inline .form-check-input {
    position: relative;
    flex-shrink: 0;
    margin-top: 0;
    margin-right: 0.25rem;
    margin-left: 0;
  }
  .form-inline .custom-control {
    align-items: center;
    justify-content: center;
  }
  .form-inline .custom-control-label {
    margin-bottom: 0;
  }
}

.input-group {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
}
.input-group > .form-control,
.input-group > .form-control-plaintext,
.input-group > .custom-select,
.input-group > .custom-file {
  position: relative;
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
  margin-bottom: 0;
}
.input-group > .form-control + .form-control,
.input-group > .form-control + .custom-select,
.input-group > .form-control + .custom-file,
.input-group > .form-control-plaintext + .form-control,
.input-group > .form-control-plaintext + .custom-select,
.input-group > .form-control-plaintext + .custom-file,
.input-group > .custom-select + .form-control,
.input-group > .custom-select + .custom-select,
.input-group > .custom-select + .custom-file,
.input-group > .custom-file + .form-control,
.input-group > .custom-file + .custom-select,
.input-group > .custom-file + .custom-file {
  margin-left: -1px;
}
.input-group > .form-control:focus,
.input-group > .custom-select:focus,
.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
  z-index: 3;
}
.input-group > .custom-file .custom-file-input:focus {
  z-index: 4;
}
.input-group > .form-control:not(:first-child),
.input-group > .custom-select:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group > .custom-file {
  display: flex;
  align-items: center;
}
.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group > .custom-file:not(:first-child) .custom-file-label {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group:not(.has-validation) > .form-control:not(:last-child),
.input-group:not(.has-validation) > .custom-select:not(:last-child),
.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label,
.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group.has-validation > .form-control:nth-last-child(n+3),
.input-group.has-validation > .custom-select:nth-last-child(n+3),
.input-group.has-validation > .custom-file:nth-last-child(n+3) .custom-file-label,
.input-group.has-validation > .custom-file:nth-last-child(n+3) .custom-file-label::after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group-prepend,
.input-group-append {
  display: flex;
}
.input-group-prepend .btn,
.input-group-append .btn {
  position: relative;
  z-index: 2;
}
.input-group-prepend .btn:focus,
.input-group-append .btn:focus {
  z-index: 3;
}
.input-group-prepend .btn + .btn,
.input-group-prepend .btn + .input-group-text,
.input-group-prepend .input-group-text + .input-group-text,
.input-group-prepend .input-group-text + .btn,
.input-group-append .btn + .btn,
.input-group-append .btn + .input-group-text,
.input-group-append .input-group-text + .input-group-text,
.input-group-append .input-group-text + .btn {
  margin-left: -1px;
}

.input-group-prepend {
  margin-right: -1px;
}

.input-group-append {
  margin-left: -1px;
}

.input-group-text {
  display: flex;
  align-items: center;
  padding: 0.5rem 1rem;
  margin-bottom: 0;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.25;
  color: #343434;
  text-align: center;
  white-space: nowrap;
  background-color: #1f3b64;
  border: 1px solid #1f3b64;
  border-radius: 0.5rem;
}
.input-group-text input[type=radio],
.input-group-text input[type=checkbox] {
  margin-top: 0;
}

.input-group-lg > .form-control:not(textarea),
.input-group-lg > .custom-select {
  height: calc(1.5em + 1rem + 2px);
}

.input-group-lg > .form-control,
.input-group-lg > .custom-select,
.input-group-lg > .input-group-prepend > .input-group-text,
.input-group-lg > .input-group-append > .input-group-text,
.input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn {
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: 0.9375rem;
}

.input-group-sm > .form-control:not(textarea),
.input-group-sm > .custom-select {
  height: calc(1.5em + 0.5rem + 2px);
}

.input-group-sm > .form-control,
.input-group-sm > .custom-select,
.input-group-sm > .input-group-prepend > .input-group-text,
.input-group-sm > .input-group-append > .input-group-text,
.input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn {
  padding: 0.25rem 0.5rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0.625rem;
}

.input-group-lg > .custom-select,
.input-group-sm > .custom-select {
  padding-right: 2rem;
}

.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,
.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .btn,
.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.custom-control {
  position: relative;
  z-index: 1;
  display: block;
  min-height: 1.3rem;
  padding-left: 2rem;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
}

.custom-control-inline {
  display: inline-flex;
  margin-right: 1rem;
}

.custom-control-input {
  position: absolute;
  left: 0;
  z-index: -1;
  width: 1.5rem;
  height: 1.4rem;
  opacity: 0;
}
.custom-control-input:checked ~ .custom-control-label::before {
  color: #ffffff;
  border-color: #43d477;
  background-color: #43d477;
}
.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: none, 1.5rem;
}
.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #43d477;
}
.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
  color: #ffffff;
  background-color: #43d477;
  border-color: #43d477;
}
.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {
  color: #6c757d;
}
.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {
  background-color: #f1f1f1;
}

.custom-control-label {
  position: relative;
  margin-bottom: 0;
  vertical-align: top;
}
.custom-control-label::before {
  position: absolute;
  top: -0.1rem;
  left: -2rem;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  pointer-events: none;
  content: "";
  background-color: #ffffff;
  border: 2px solid #adb5bd;
  box-shadow: none;
}
.custom-control-label::after {
  position: absolute;
  top: -0.1rem;
  left: -2rem;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  content: "";
  background: 50%/50% 50% no-repeat;
}

.custom-checkbox .custom-control-label::before {
  border-radius: 0.25rem;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23ffffff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e");
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
  border-color: #43d477;
  background-color: #43d477;
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23ffffff' d='M0 2h4'/%3e%3c/svg%3e");
}
.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(67, 212, 119, 0.5);
}
.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
  background-color: rgba(67, 212, 119, 0.5);
}

.custom-radio .custom-control-label::before {
  border-radius: 50%;
}
.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e");
}
.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(67, 212, 119, 0.5);
}

.custom-switch {
  padding-left: 3.125rem;
}
.custom-switch .custom-control-label::before {
  left: -3.125rem;
  width: 2.625rem;
  pointer-events: all;
  border-radius: 0.75rem;
}
.custom-switch .custom-control-label::after {
  top: calc(-0.1rem + 4px);
  left: calc(-3.125rem + 4px);
  width: calc(1.5rem - 8px);
  height: calc(1.5rem - 8px);
  background-color: #adb5bd;
  border-radius: 0.75rem;
  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .custom-switch .custom-control-label::after {
    transition: none;
  }
}
.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  background-color: #ffffff;
  transform: translateX(1.125rem);
}
.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(67, 212, 119, 0.5);
}

.custom-select {
  display: inline-block;
  width: 100%;
  height: 2.5rem;
  padding: 0.5rem 2rem 0.5rem 1rem;
  font-family: "main-font-family";
  font-size: 0.75rem;
  font-weight: normal;
  line-height: 1.25;
  color: #343434;
  vertical-align: middle;
  background: #ffffff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1rem center/8px 10px no-repeat;
  border: 1px solid #ececec;
  border-radius: 0.3125rem;
  box-shadow: inset 0 1px 2px rgba(52, 52, 52, 0.075);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.custom-select:focus {
  border-color: #43d477;
  outline: 0;
  box-shadow: inset 0 1px 2px rgba(52, 52, 52, 0.075), 0 0 0 0.2rem rgba(67, 212, 119, 0.25);
}
.custom-select:focus::-ms-value {
  color: #343434;
  background-color: #ffffff;
}
.custom-select[multiple], .custom-select[size]:not([size="1"]) {
  height: auto;
  padding-right: 1rem;
  background-image: none;
}
.custom-select:disabled {
  color: #6c757d;
  background-color: #f1f1f1;
}
.custom-select::-ms-expand {
  display: none;
}
.custom-select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #343434;
}

.custom-select-sm {
  height: calc(1.5em + 0.5rem + 2px);
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  padding-left: 0.5rem;
  font-size: 1rem;
}

.custom-select-lg {
  height: calc(1.5em + 1rem + 2px);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  font-size: 1.25rem;
}

.custom-file {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 2.5rem;
  margin-bottom: 0;
}

.custom-file-input {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 2.5rem;
  margin: 0;
  overflow: hidden;
  opacity: 0;
}
.custom-file-input:focus ~ .custom-file-label {
  border-color: #43d477;
  box-shadow: 1.5rem;
}
.custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label {
  background-color: #f1f1f1;
}
.custom-file-input:lang(en) ~ .custom-file-label::after {
  content: "Browse";
}
.custom-file-input ~ .custom-file-label[data-browse]::after {
  content: attr(data-browse);
}

.custom-file-label {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: 2.5rem;
  padding: 0.5rem 1rem;
  overflow: hidden;
  font-family: "main-font-family";
  font-weight: normal;
  line-height: 1.25;
  color: #343434;
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 0.5rem;
  box-shadow: none;
}
.custom-file-label::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  height: calc(1.25em + 1rem);
  padding: 0.5rem 1rem;
  line-height: 1.25;
  color: #ffffff;
  content: "Browse";
  background-color: #1f3b64;
  border-left: inherit;
  border-radius: 0 0.5rem 0.5rem 0;
}

.custom-range {
  width: 100%;
  height: 1.4rem;
  padding: 0;
  background-color: transparent;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.custom-range:focus {
  outline: 0;
}
.custom-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #ffffff, 1.5rem;
}
.custom-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #ffffff, 1.5rem;
}
.custom-range:focus::-ms-thumb {
  box-shadow: 0 0 0 1px #ffffff, 1.5rem;
}
.custom-range::-moz-focus-outer {
  border: 0;
}
.custom-range::-webkit-slider-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: -0.25rem;
  background-color: #43d477;
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 0.1rem 0.25rem rgba(52, 52, 52, 0.1);
  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -webkit-appearance: none;
          appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-webkit-slider-thumb {
    -webkit-transition: none;
    transition: none;
  }
}
.custom-range::-webkit-slider-thumb:active {
  background-color: #d4f5e0;
}
.custom-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #ececec;
  border-color: transparent;
  border-radius: 1rem;
  box-shadow: inset 0 0.25rem 0.25rem rgba(52, 52, 52, 0.1);
}
.custom-range::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  background-color: #43d477;
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 0.1rem 0.25rem rgba(52, 52, 52, 0.1);
  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -moz-appearance: none;
       appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-moz-range-thumb {
    -moz-transition: none;
    transition: none;
  }
}
.custom-range::-moz-range-thumb:active {
  background-color: #d4f5e0;
}
.custom-range::-moz-range-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #ececec;
  border-color: transparent;
  border-radius: 1rem;
  box-shadow: inset 0 0.25rem 0.25rem rgba(52, 52, 52, 0.1);
}
.custom-range::-ms-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: 0;
  margin-right: 0.2rem;
  margin-left: 0.2rem;
  background-color: #43d477;
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 0.1rem 0.25rem rgba(52, 52, 52, 0.1);
  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-ms-thumb {
    -ms-transition: none;
    transition: none;
  }
}
.custom-range::-ms-thumb:active {
  background-color: #d4f5e0;
}
.custom-range::-ms-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: transparent;
  border-color: transparent;
  border-width: 0.5rem;
  box-shadow: inset 0 0.25rem 0.25rem rgba(52, 52, 52, 0.1);
}
.custom-range::-ms-fill-lower {
  background-color: #ececec;
  border-radius: 1rem;
}
.custom-range::-ms-fill-upper {
  margin-right: 15px;
  background-color: #ececec;
  border-radius: 1rem;
}
.custom-range:disabled::-webkit-slider-thumb {
  background-color: #adb5bd;
}
.custom-range:disabled::-webkit-slider-runnable-track {
  cursor: default;
}
.custom-range:disabled::-moz-range-thumb {
  background-color: #adb5bd;
}
.custom-range:disabled::-moz-range-track {
  cursor: default;
}
.custom-range:disabled::-ms-thumb {
  background-color: #adb5bd;
}

.custom-control-label::before,
.custom-file-label,
.custom-select {
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .custom-control-label::before,
  .custom-file-label,
  .custom-select {
    transition: none;
  }
}

.btn {
  display: inline-block;
  font-weight: 400;
  color: #343434;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  padding-right: 32px;
  padding-left: 32px;
  height: 48px;
  font-size: 0.875rem;
  border-radius: 8px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }
}
.btn:hover {
  color: #343434;
  text-decoration: none;
}
.btn:focus, .btn.focus {
  outline: 0;
  box-shadow: none;
}
.btn.disabled, .btn:disabled {
  opacity: 0.65;
  box-shadow: none;
}
.btn:not(:disabled):not(.disabled) {
  cursor: pointer;
}
.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {
  box-shadow: none;
}
a.btn.disabled,
fieldset:disabled a.btn {
  pointer-events: none;
}

.btn-primary {
  color: #ffffff;
  background-color: #43d477;
  border-color: #43d477;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-primary:hover {
  color: #ffffff;
  background-color: #2dc463;
  border-color: #2aba5e;
}
.btn-primary:focus, .btn-primary.focus {
  color: #ffffff;
  background-color: #2dc463;
  border-color: #2aba5e;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(95, 218, 139, 0.5);
}
.btn-primary.disabled, .btn-primary:disabled {
  color: #ffffff;
  background-color: #43d477;
  border-color: #43d477;
}
.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle {
  color: #ffffff;
  background-color: #2aba5e;
  border-color: #28af59;
}
.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(95, 218, 139, 0.5);
}

/* =========================================================
   BTN YELLOW PREMIUM - AULOPOLIS
========================================================= */

.btn-yellow {
    color: #050816;
    font-weight: 700;

    background: linear-gradient(
        135deg,
        #FFB200 0%,
        #FFD54A 45%,
        #FFF07A 100%
    );

    border: 1px solid rgba(255, 255, 255, 0.18);

    border-radius: 14px;

    padding: 12px 26px;

    box-shadow:
        0 6px 18px rgba(255, 178, 0, 0.28),
        inset 0 1px 0 rgba(255,255,255,.35);

    transition:
        all 0.35s cubic-bezier(.4,0,.2,1);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    position: relative;
    overflow: hidden;
}

/* HOVER */

.btn-yellow:hover {
    color: #050816;

    background: linear-gradient(
        135deg,
        #FFC933 0%,
        #FFE066 50%,
        #FFF3A3 100%
    );

    border-color: rgba(255,255,255,.28);

    transform: translateY(-2px);

    box-shadow:
        0 10px 28px rgba(255, 178, 0, 0.38),
        0 0 22px rgba(255, 178, 0, 0.22);
}

/* FOCUS */

.btn-yellow:focus,
.btn-yellow.focus {
    color: #050816;

    background: linear-gradient(
        135deg,
        #FFC933 0%,
        #FFE066 50%,
        #FFF3A3 100%
    );

    border-color: #FFE066;

    box-shadow:
        0 0 0 4px rgba(255, 178, 0, 0.22),
        0 10px 28px rgba(255, 178, 0, 0.35);
}

/* ACTIVE */

.btn-yellow:active {
    transform: scale(0.98);
}

/* ICONOS */

.btn-yellow svg,
.btn-yellow i {
    color: #050816;
    transition: all .3s ease;
}

/* EFECTO SHINE */

.btn-yellow::before {
    content: "";

    position: absolute;
    top: 0;
    left: -120%;

    width: 100%;
    height: 100%;

    background: linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,.35),
        transparent
    );

    transition: all .7s ease;
}

.btn-yellow:hover::before {
    left: 120%;
}

/* =========================================================
   BTN CYBER OUTLINE - COMPRAR AHORA
========================================================= */

.btn-cyber {
    position: relative;
    overflow: hidden;

    width: 100%;

    padding: 14px 26px;

    border-radius: 14px;

    background: rgba(10, 16, 35, 0.72);

    color: #FFFFFF !important;
    font-weight: 700;
    letter-spacing: .3px;

    border: 1px solid rgba(0, 219, 255, 0.35);

    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);

    box-shadow:
        0 8px 24px rgba(0, 0, 0, 0.35),
        inset 0 0 0 1px rgba(255,255,255,.03),
        0 0 18px rgba(0, 219, 255, 0.12);

    transition:
        all .35s cubic-bezier(.4,0,.2,1);
}

/* GLOW INTERNO */

.btn-cyber::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            135deg,
            rgba(0,219,255,.12),
            rgba(124,58,237,.08)
        );

    opacity: 0;

    transition: opacity .35s ease;
}

/* LINEA ANIMADA */

.btn-cyber::before {
    content: "";

    position: absolute;
    top: 0;
    left: -120%;

    width: 100%;
    height: 100%;

    background: linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,.22),
        transparent
    );

    transition: all .8s ease;
}

/* HOVER */

.btn-cyber:hover {
    transform: translateY(-3px);

    color: #FFFFFF !important;

    border-color: rgba(0, 219, 255, 0.65);

    box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.45),
        0 0 28px rgba(0, 219, 255, 0.22),
        0 0 55px rgba(124,58,237,.12);

    background:
        linear-gradient(
            135deg,
            rgba(15, 23, 42, 0.95),
            rgba(20, 28, 52, 0.95)
        );
}

.btn-cyber:hover::before {
    left: 120%;
}

.btn-cyber:hover::after {
    opacity: 1;
}

/* FOCUS */

.btn-cyber:focus,
.btn-cyber.focus {
    outline: none;

    color: #FFFFFF !important;

    border-color: #00DBFF;

    box-shadow:
        0 0 0 4px rgba(0, 219, 255, 0.18),
        0 0 30px rgba(0, 219, 255, 0.22);
}

/* ACTIVE */

.btn-cyber:active {
    transform: scale(.98);
}

/* ICONOS */

.btn-cyber svg,
.btn-cyber i {
    color: #00DBFF;
    transition: all .3s ease;
}

.btn-cyber:hover svg,
.btn-cyber:hover i {
    color: #FFFFFF;
}

.btn-secondary {
  color: #ffffff;
  background-color: #1f3b64;
  border-color: #1f3b64;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-secondary:hover {
  color: #ffffff;
  background-color: #162a47;
  border-color: #13243d;
}
.btn-secondary:focus, .btn-secondary.focus {
  color: #ffffff;
  background-color: #162a47;
  border-color: #13243d;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(65, 88, 123, 0.5);
}
.btn-secondary.disabled, .btn-secondary:disabled {
  color: #ffffff;
  background-color: #1f3b64;
  border-color: #1f3b64;
}
.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {
  color: #ffffff;
  background-color: #13243d;
  border-color: #101e33;
}
.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(65, 88, 123, 0.5);
}

.btn-success {
  color: #ffffff;
  background-color: #e7f4f0;
  border-color: #e7f4f0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-success:hover {
  color: #ffffff;
  background-color: #cde8e0;
  border-color: #c4e4da;
}
.btn-success:focus, .btn-success.focus {
  color: #ffffff;
  background-color: #cde8e0;
  border-color: #c4e4da;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(235, 246, 242, 0.5);
}
.btn-success.disabled, .btn-success:disabled {
  color: #ffffff;
  background-color: #e7f4f0;
  border-color: #e7f4f0;
}
.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle {
  color: #ffffff;
  background-color: #c4e4da;
  border-color: #bbe0d5;
}
.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(235, 246, 242, 0.5);
}

.btn-info {
  color: #ffffff;
  background-color: #ebf7ff;
  border-color: #ebf7ff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-info:hover {
  color: #ffffff;
  background-color: #c5e8ff;
  border-color: #b8e3ff;
}
.btn-info:focus, .btn-info.focus {
  color: #ffffff;
  background-color: #c5e8ff;
  border-color: #b8e3ff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(238, 248, 255, 0.5);
}
.btn-info.disabled, .btn-info:disabled {
  color: #ffffff;
  background-color: #ebf7ff;
  border-color: #ebf7ff;
}
.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle {
  color: #ffffff;
  background-color: #b8e3ff;
  border-color: #abdeff;
}
.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(238, 248, 255, 0.5);
}

.btn-warning {
  color: #ffffff;
  background-color: #ffab00;
  border-color: #ffab00;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-warning:hover {
  color: #ffffff;
  background-color: #d99100;
  border-color: #cc8900;
}
.btn-warning:focus, .btn-warning.focus {
  color: #ffffff;
  background-color: #d99100;
  border-color: #cc8900;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(255, 184, 38, 0.5);
}
.btn-warning.disabled, .btn-warning:disabled {
  color: #ffffff;
  background-color: #ffab00;
  border-color: #ffab00;
}
.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle {
  color: #ffffff;
  background-color: #cc8900;
  border-color: #bf8000;
}
.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(255, 184, 38, 0.5);
}

.btn-danger {
  color: #ffffff;
  background-color: #f63c3c;
  border-color: #f63c3c;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-danger:hover {
  color: #ffffff;
  background-color: #f41717;
  border-color: #f40b0b;
}
.btn-danger:focus, .btn-danger.focus {
  color: #ffffff;
  background-color: #f41717;
  border-color: #f40b0b;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(247, 89, 89, 0.5);
}
.btn-danger.disabled, .btn-danger:disabled {
  color: #ffffff;
  background-color: #f63c3c;
  border-color: #f63c3c;
}
.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle {
  color: #ffffff;
  background-color: #f40b0b;
  border-color: #e80b0b;
}
.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(247, 89, 89, 0.5);
}

.btn-light {
  color: #ffffff;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-light:hover {
  color: #ffffff;
  background-color: #e6e6e6;
  border-color: #e0e0e0;
}
.btn-light:focus, .btn-light.focus {
  color: #ffffff;
  background-color: #e6e6e6;
  border-color: #e0e0e0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(250, 250, 250, 0.5);
}
.btn-light.disabled, .btn-light:disabled {
  color: #ffffff;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
}
.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle {
  color: #ffffff;
  background-color: #e0e0e0;
  border-color: #d9d9d9;
}
.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(250, 250, 250, 0.5);
}

.btn-dark {
  color: #ffffff;
  background-color: #343434;
  border-color: #343434;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-dark:hover {
  color: #ffffff;
  background-color: #212121;
  border-color: #1b1b1b;
}
.btn-dark:focus, .btn-dark.focus {
  color: #ffffff;
  background-color: #212121;
  border-color: #1b1b1b;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(82, 82, 82, 0.5);
}
.btn-dark.disabled, .btn-dark:disabled {
  color: #ffffff;
  background-color: #343434;
  border-color: #343434;
}
.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle {
  color: #ffffff;
  background-color: #1b1b1b;
  border-color: #141414;
}
.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(82, 82, 82, 0.5);
}

.btn-white {
  color: #212529;
  background-color: #ffffff;
  border-color: #ffffff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-white:hover {
  color: #ffffff;
  background-color: #ececec;
  border-color: #e6e6e6;
}
.btn-white:focus, .btn-white.focus {
  color: #ffffff;
  background-color: #ececec;
  border-color: #e6e6e6;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(222, 222, 223, 0.5);
}
.btn-white.disabled, .btn-white:disabled {
  color: #212529;
  background-color: #ffffff;
  border-color: #ffffff;
}
.btn-white:not(:disabled):not(.disabled):active, .btn-white:not(:disabled):not(.disabled).active, .show > .btn-white.dropdown-toggle {
  color: #ffffff;
  background-color: #e6e6e6;
  border-color: #dfdfdf;
}
.btn-white:not(:disabled):not(.disabled):active:focus, .btn-white:not(:disabled):not(.disabled).active:focus, .show > .btn-white.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(222, 222, 223, 0.5);
}

.btn-gray {
  color: #ffffff;
  background-color: #818894;
  border-color: #818894;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-gray:hover {
  color: #ffffff;
  background-color: #6e7581;
  border-color: #686f7a;
}
.btn-gray:focus, .btn-gray.focus {
  color: #ffffff;
  background-color: #6e7581;
  border-color: #686f7a;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(148, 154, 164, 0.5);
}
.btn-gray.disabled, .btn-gray:disabled {
  color: #ffffff;
  background-color: #818894;
  border-color: #818894;
}
.btn-gray:not(:disabled):not(.disabled):active, .btn-gray:not(:disabled):not(.disabled).active, .show > .btn-gray.dropdown-toggle {
  color: #ffffff;
  background-color: #686f7a;
  border-color: #626873;
}
.btn-gray:not(:disabled):not(.disabled):active:focus, .btn-gray:not(:disabled):not(.disabled).active:focus, .show > .btn-gray.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(148, 154, 164, 0.5);
}

.btn-gray300 {
  color: #ffffff;
  background-color: #ececec;
  border-color: #ececec;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-gray300:hover {
  color: #ffffff;
  background-color: #d9d9d9;
  border-color: lightgray;
}
.btn-gray300:focus, .btn-gray300.focus {
  color: #ffffff;
  background-color: #d9d9d9;
  border-color: lightgray;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(239, 239, 239, 0.5);
}
.btn-gray300.disabled, .btn-gray300:disabled {
  color: #ffffff;
  background-color: #ececec;
  border-color: #ececec;
}
.btn-gray300:not(:disabled):not(.disabled):active, .btn-gray300:not(:disabled):not(.disabled).active, .show > .btn-gray300.dropdown-toggle {
  color: #ffffff;
  background-color: lightgray;
  border-color: #cccccc;
}
.btn-gray300:not(:disabled):not(.disabled):active:focus, .btn-gray300:not(:disabled):not(.disabled).active:focus, .show > .btn-gray300.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(239, 239, 239, 0.5);
}

.btn-gray200 {
  color: #ffffff;
  background-color: #f1f1f1;
  border-color: #f1f1f1;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-gray200:hover {
  color: #ffffff;
  background-color: #dedede;
  border-color: #d8d8d8;
}
.btn-gray200:focus, .btn-gray200.focus {
  color: #ffffff;
  background-color: #dedede;
  border-color: #d8d8d8;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(243, 243, 243, 0.5);
}
.btn-gray200.disabled, .btn-gray200:disabled {
  color: #ffffff;
  background-color: #f1f1f1;
  border-color: #f1f1f1;
}
.btn-gray200:not(:disabled):not(.disabled):active, .btn-gray200:not(:disabled):not(.disabled).active, .show > .btn-gray200.dropdown-toggle {
  color: #ffffff;
  background-color: #d8d8d8;
  border-color: #d1d1d1;
}
.btn-gray200:not(:disabled):not(.disabled):active:focus, .btn-gray200:not(:disabled):not(.disabled).active:focus, .show > .btn-gray200.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(243, 243, 243, 0.5);
}

.btn-gray100 {
  color: #ffffff;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075);
}
.btn-gray100:hover {
  color: #ffffff;
  background-color: #e6e6e6;
  border-color: #e0e0e0;
}
.btn-gray100:focus, .btn-gray100.focus {
  color: #ffffff;
  background-color: #e6e6e6;
  border-color: #e0e0e0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(52, 52, 52, 0.075), 0 0 0 0 rgba(250, 250, 250, 0.5);
}
.btn-gray100.disabled, .btn-gray100:disabled {
  color: #ffffff;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
}
.btn-gray100:not(:disabled):not(.disabled):active, .btn-gray100:not(:disabled):not(.disabled).active, .show > .btn-gray100.dropdown-toggle {
  color: #ffffff;
  background-color: #e0e0e0;
  border-color: #d9d9d9;
}
.btn-gray100:not(:disabled):not(.disabled):active:focus, .btn-gray100:not(:disabled):not(.disabled).active:focus, .show > .btn-gray100.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(250, 250, 250, 0.5);
}

.btn-outline-primary {
  color: #43d477;
  border-color: #43d477;
}
.btn-outline-primary:hover {
  color: #ffffff;
  background-color: #43d477;
  border-color: #43d477;
}
.btn-outline-primary:focus, .btn-outline-primary.focus {
  box-shadow: 0 0 0 0 rgba(67, 212, 119, 0.5);
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
  color: #43d477;
  background-color: transparent;
}
.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle {
  color: #ffffff;
  background-color: #43d477;
  border-color: #43d477;
}
.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(67, 212, 119, 0.5);
}

.btn-outline-secondary {
  color: #1f3b64;
  border-color: #1f3b64;
}
.btn-outline-secondary:hover {
  color: #ffffff;
  background-color: #1f3b64;
  border-color: #1f3b64;
}
.btn-outline-secondary:focus, .btn-outline-secondary.focus {
  box-shadow: 0 0 0 0 rgba(31, 59, 100, 0.5);
}
.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
  color: #1f3b64;
  background-color: transparent;
}
.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle {
  color: #ffffff;
  background-color: #1f3b64;
  border-color: #1f3b64;
}
.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(31, 59, 100, 0.5);
}

.btn-outline-success {
  color: #e7f4f0;
  border-color: #e7f4f0;
}
.btn-outline-success:hover {
  color: #ffffff;
  background-color: #e7f4f0;
  border-color: #e7f4f0;
}
.btn-outline-success:focus, .btn-outline-success.focus {
  box-shadow: 0 0 0 0 rgba(231, 244, 240, 0.5);
}
.btn-outline-success.disabled, .btn-outline-success:disabled {
  color: #e7f4f0;
  background-color: transparent;
}
.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle {
  color: #ffffff;
  background-color: #e7f4f0;
  border-color: #e7f4f0;
}
.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(231, 244, 240, 0.5);
}

.btn-outline-info {
  color: #ebf7ff;
  border-color: #ebf7ff;
}
.btn-outline-info:hover {
  color: #ffffff;
  background-color: #ebf7ff;
  border-color: #ebf7ff;
}
.btn-outline-info:focus, .btn-outline-info.focus {
  box-shadow: 0 0 0 0 rgba(235, 247, 255, 0.5);
}
.btn-outline-info.disabled, .btn-outline-info:disabled {
  color: #ebf7ff;
  background-color: transparent;
}
.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle {
  color: #ffffff;
  background-color: #ebf7ff;
  border-color: #ebf7ff;
}
.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(235, 247, 255, 0.5);
}

.btn-outline-warning {
  color: #ffab00;
  border-color: #ffab00;
}
.btn-outline-warning:hover {
  color: #ffffff;
  background-color: #ffab00;
  border-color: #ffab00;
}
.btn-outline-warning:focus, .btn-outline-warning.focus {
  box-shadow: 0 0 0 0 rgba(255, 171, 0, 0.5);
}
.btn-outline-warning.disabled, .btn-outline-warning:disabled {
  color: #ffab00;
  background-color: transparent;
}
.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle {
  color: #ffffff;
  background-color: #ffab00;
  border-color: #ffab00;
}
.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(255, 171, 0, 0.5);
}

.btn-outline-danger {
  color: #f63c3c;
  border-color: #f63c3c;
}
.btn-outline-danger:hover {
  color: #ffffff;
  background-color: #f63c3c;
  border-color: #f63c3c;
}
.btn-outline-danger:focus, .btn-outline-danger.focus {
  box-shadow: 0 0 0 0 rgba(246, 60, 60, 0.5);
}
.btn-outline-danger.disabled, .btn-outline-danger:disabled {
  color: #f63c3c;
  background-color: transparent;
}
.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle {
  color: #ffffff;
  background-color: #f63c3c;
  border-color: #f63c3c;
}
.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(246, 60, 60, 0.5);
}

.btn-outline-light {
  color: #f9f9f9;
  border-color: #f9f9f9;
}
.btn-outline-light:hover {
  color: #ffffff;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
}
.btn-outline-light:focus, .btn-outline-light.focus {
  box-shadow: 0 0 0 0 rgba(249, 249, 249, 0.5);
}
.btn-outline-light.disabled, .btn-outline-light:disabled {
  color: #f9f9f9;
  background-color: transparent;
}
.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle {
  color: #ffffff;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
}
.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(249, 249, 249, 0.5);
}

.btn-outline-dark {
  color: #343434;
  border-color: #343434;
}
.btn-outline-dark:hover {
  color: #ffffff;
  background-color: #343434;
  border-color: #343434;
}
.btn-outline-dark:focus, .btn-outline-dark.focus {
  box-shadow: 0 0 0 0 rgba(52, 52, 52, 0.5);
}
.btn-outline-dark.disabled, .btn-outline-dark:disabled {
  color: #343434;
  background-color: transparent;
}
.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle {
  color: #ffffff;
  background-color: #343434;
  border-color: #343434;
}
.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(52, 52, 52, 0.5);
}

.btn-outline-white {
  color: #ffffff;
  border-color: #ffffff;
}
.btn-outline-white:hover {
  color: #212529;
  background-color: #ffffff;
  border-color: #ffffff;
}
.btn-outline-white:focus, .btn-outline-white.focus {
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5);
}
.btn-outline-white.disabled, .btn-outline-white:disabled {
  color: #ffffff;
  background-color: transparent;
}
.btn-outline-white:not(:disabled):not(.disabled):active, .btn-outline-white:not(:disabled):not(.disabled).active, .show > .btn-outline-white.dropdown-toggle {
  color: #212529;
  background-color: #ffffff;
  border-color: #ffffff;
}
.btn-outline-white:not(:disabled):not(.disabled):active:focus, .btn-outline-white:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-white.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5);
}

.btn-outline-gray {
  color: #818894;
  border-color: #818894;
}
.btn-outline-gray:hover {
  color: #ffffff;
  background-color: #818894;
  border-color: #818894;
}
.btn-outline-gray:focus, .btn-outline-gray.focus {
  box-shadow: 0 0 0 0 rgba(129, 136, 148, 0.5);
}
.btn-outline-gray.disabled, .btn-outline-gray:disabled {
  color: #818894;
  background-color: transparent;
}
.btn-outline-gray:not(:disabled):not(.disabled):active, .btn-outline-gray:not(:disabled):not(.disabled).active, .show > .btn-outline-gray.dropdown-toggle {
  color: #ffffff;
  background-color: #818894;
  border-color: #818894;
}
.btn-outline-gray:not(:disabled):not(.disabled):active:focus, .btn-outline-gray:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-gray.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(129, 136, 148, 0.5);
}

.btn-outline-gray300 {
  color: #ececec;
  border-color: #ececec;
}
.btn-outline-gray300:hover {
  color: #ffffff;
  background-color: #ececec;
  border-color: #ececec;
}
.btn-outline-gray300:focus, .btn-outline-gray300.focus {
  box-shadow: 0 0 0 0 rgba(236, 236, 236, 0.5);
}
.btn-outline-gray300.disabled, .btn-outline-gray300:disabled {
  color: #ececec;
  background-color: transparent;
}
.btn-outline-gray300:not(:disabled):not(.disabled):active, .btn-outline-gray300:not(:disabled):not(.disabled).active, .show > .btn-outline-gray300.dropdown-toggle {
  color: #ffffff;
  background-color: #ececec;
  border-color: #ececec;
}
.btn-outline-gray300:not(:disabled):not(.disabled):active:focus, .btn-outline-gray300:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-gray300.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(236, 236, 236, 0.5);
}

.btn-outline-gray200 {
  color: #f1f1f1;
  border-color: #f1f1f1;
}
.btn-outline-gray200:hover {
  color: #ffffff;
  background-color: #f1f1f1;
  border-color: #f1f1f1;
}
.btn-outline-gray200:focus, .btn-outline-gray200.focus {
  box-shadow: 0 0 0 0 rgba(241, 241, 241, 0.5);
}
.btn-outline-gray200.disabled, .btn-outline-gray200:disabled {
  color: #f1f1f1;
  background-color: transparent;
}
.btn-outline-gray200:not(:disabled):not(.disabled):active, .btn-outline-gray200:not(:disabled):not(.disabled).active, .show > .btn-outline-gray200.dropdown-toggle {
  color: #ffffff;
  background-color: #f1f1f1;
  border-color: #f1f1f1;
}
.btn-outline-gray200:not(:disabled):not(.disabled):active:focus, .btn-outline-gray200:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-gray200.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(241, 241, 241, 0.5);
}

.btn-outline-gray100 {
  color: #f9f9f9;
  border-color: #f9f9f9;
}
.btn-outline-gray100:hover {
  color: #ffffff;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
}
.btn-outline-gray100:focus, .btn-outline-gray100.focus {
  box-shadow: 0 0 0 0 rgba(249, 249, 249, 0.5);
}
.btn-outline-gray100.disabled, .btn-outline-gray100:disabled {
  color: #f9f9f9;
  background-color: transparent;
}
.btn-outline-gray100:not(:disabled):not(.disabled):active, .btn-outline-gray100:not(:disabled):not(.disabled).active, .show > .btn-outline-gray100.dropdown-toggle {
  color: #ffffff;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
}
.btn-outline-gray100:not(:disabled):not(.disabled):active:focus, .btn-outline-gray100:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-gray100.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgba(249, 249, 249, 0.5);
}

.btn-link {
  font-weight: 400;
  color: #343434;
  text-decoration: none;
}
.btn-link:hover {
  color: #343434;
  text-decoration: underline;
}
.btn-link:focus, .btn-link.focus {
  text-decoration: underline;
}
.btn-link:disabled, .btn-link.disabled {
  color: #6c757d;
  pointer-events: none;
}

.btn-lg, .btn-group-lg > .btn {
  padding-right: 32px;
  padding-left: 32px;
  height: 48px;
  font-size: 1.25rem;
  border-radius: 8px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-sm, .btn-group-sm > .btn {
  padding-right: 16px;
  padding-left: 16px;
  height: 36px;
  font-size: 1rem;
  border-radius: 8px;
  font-weight: normal;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 0.5rem;
}

input[type=submit].btn-block,
input[type=reset].btn-block,
input[type=button].btn-block {
  width: 100%;
}

.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-flex;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  flex: 1 1 auto;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover {
  z-index: 1;
}
.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
.btn-group-vertical > .btn:focus,
.btn-group-vertical > .btn:active,
.btn-group-vertical > .btn.active {
  z-index: 1;
}

.btn-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.btn-toolbar .input-group {
  width: auto;
}

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) {
  margin-left: -1px;
}
.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:last-child) > .btn {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.dropdown-toggle-split {
  padding-right: 24px;
  padding-left: 24px;
}
.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after {
  margin-left: 0;
}
.dropleft .dropdown-toggle-split::before {
  margin-right: 0;
}

.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
  padding-right: 12px;
  padding-left: 12px;
}

.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
  padding-right: 24px;
  padding-left: 24px;
}

.btn-group.show .dropdown-toggle {
  box-shadow: none;
}
.btn-group.show .dropdown-toggle.btn-link {
  box-shadow: none;
}

.btn-group-vertical {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group {
  width: 100%;
}
.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) {
  margin-top: -1px;
}
.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group-vertical > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.btn-group-toggle > .btn,
.btn-group-toggle > .btn-group > .btn {
  margin-bottom: 0;
}
.btn-group-toggle > .btn input[type=radio],
.btn-group-toggle > .btn input[type=checkbox],
.btn-group-toggle > .btn-group > .btn input[type=radio],
.btn-group-toggle > .btn-group > .btn input[type=checkbox] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}

.img-fluid {
  max-width: 100%;
  height: auto;
}

.img-thumbnail {
  padding: 0.25rem;
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 0.3125rem;
  box-shadow: 0 1px 2px rgba(52, 52, 52, 0.075);
  max-width: 100%;
  height: auto;
}

.figure {
  display: inline-block;
}

.figure-img {
  margin-bottom: 10px;
  line-height: 1;
}

.figure-caption {
  font-size: 90%;
  color: #6c757d;
}

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  list-style: none;
  background-color: "#fff";
  border-radius: 0.3125rem;
}

.breadcrumb-item + .breadcrumb-item {
  padding-left: 0;
}
.breadcrumb-item + .breadcrumb-item::before {
  float: left;
  padding-right: 0;
  color: #818894;
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM4MTg4OTQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWNoZXZyb24tcmlnaHQiPjxwb2x5bGluZSBwb2ludHM9IjkgMTggMTUgMTIgOSA2Ij48L3BvbHlsaW5lPjwvc3ZnPg==");
}
.breadcrumb-item + .breadcrumb-item:hover::before {
  text-decoration: underline;
}
.breadcrumb-item + .breadcrumb-item:hover::before {
  text-decoration: none;
}
.breadcrumb-item.active {
  color: #818894;
}

.pagination {
  display: flex;
  padding-left: 0;
  list-style: none;
  border-radius: 0.3125rem;
}

.page-link {
  position: relative;
  display: block;
  padding: 0.5rem 0.75rem;
  margin-left: -1px;
  line-height: 1.25;
  color: #343434;
  background-color: #ffffff;
  border: 1px solid #ececec;
}
.page-link:hover {
  z-index: 2;
  color: #343434;
  text-decoration: none;
  background-color: #f1f1f1;
  border-color: #ececec;
}
.page-link:focus {
  z-index: 3;
  outline: 0;
  box-shadow: 1.5rem;
}

.page-item:first-child .page-link {
  margin-left: 0;
  border-top-left-radius: 0.3125rem;
  border-bottom-left-radius: 0.3125rem;
}
.page-item:last-child .page-link {
  border-top-right-radius: 0.3125rem;
  border-bottom-right-radius: 0.3125rem;
}
.page-item.active .page-link {
  z-index: 3;
  color: #ffffff;
  background-color: #43d477;
  border-color: #43d477;
}
.page-item.disabled .page-link {
  color: #6c757d;
  pointer-events: none;
  cursor: auto;
  background-color: #ffffff;
  border-color: #ececec;
}

.pagination-lg .page-link {
  padding: 0.75rem 1.5rem;
  font-size: 1.25rem;
  line-height: 1.5;
}
.pagination-lg .page-item:first-child .page-link {
  border-top-left-radius: 0.9375rem;
  border-bottom-left-radius: 0.9375rem;
}
.pagination-lg .page-item:last-child .page-link {
  border-top-right-radius: 0.9375rem;
  border-bottom-right-radius: 0.9375rem;
}

.pagination-sm .page-link {
  padding: 0.25rem 0.5rem;
  font-size: 1rem;
  line-height: 1.5;
}
.pagination-sm .page-item:first-child .page-link {
  border-top-left-radius: 0.625rem;
  border-bottom-left-radius: 0.625rem;
}
.pagination-sm .page-item:last-child .page-link {
  border-top-right-radius: 0.625rem;
  border-bottom-right-radius: 0.625rem;
}

.fade {
  transition: opacity 0.15s linear;
}
@media (prefers-reduced-motion: reduce) {
  .fade {
    transition: none;
  }
}
.fade:not(.show) {
  opacity: 0;
}

.collapse:not(.show) {
  display: none;
}
.navbar-collapse {
        display: flex !important;
        flex-direction: column;
        justify-content: space-between; /* Empuja los botones al fondo */
        height: 80vh; /* Para que ocupen el alto de la pantalla */
        padding: 80px 20px 40px; /* Espacio para que el texto no choque arriba */
    }

    .nav-auth-mobile {
        display: flex;
        flex-direction: column;
        gap: 15px;
        width: 100%;
        margin-top: auto; /* Truco clave: empuja hacia abajo */
    }
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  transition: height 0.35s ease;
}
@media (prefers-reduced-motion: reduce) {
  .collapsing {
    transition: none;
  }
}
.collapsing.width {
  width: 0;
  height: auto;
  transition: width 0.35s ease;
}
@media (prefers-reduced-motion: reduce) {
  .collapsing.width {
    transition: none;
  }
}

.dropup,
.dropright,
.dropdown,
.dropleft {
  position: relative;
}

.dropdown-toggle {
  white-space: nowrap;
}
.dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid;
  border-right: 0.3em solid transparent;
  border-bottom: 0;
  border-left: 0.3em solid transparent;
}
.dropdown-toggle:empty::after {
  margin-left: 0;
}

.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 10rem;
  padding: 0.5rem 0;
  margin: 0.125rem 0 0;
  font-size: 1rem;
  color: #343434;
  text-align: left;
  list-style: none;
  background-color: #ffffff;
  background-clip: padding-box;
  border: 1px solid rgba(52, 52, 52, 0.15);
  border-radius: 15px;
  box-shadow: 0 3px 15px 0 rgba(0, 0, 0, 0.16);
}

.dropdown-menu-left {
  right: auto;
  left: 0;
}

.dropdown-menu-right {
  right: 0;
  left: auto;
}

@media (min-width: 576px) {
  .dropdown-menu-sm-left {
    right: auto;
    left: 0;
  }
  .dropdown-menu-sm-right {
    right: 0;
    left: auto;
  }
}
@media (min-width: 768px) {
  .dropdown-menu-md-left {
    right: auto;
    left: 0;
  }
  .dropdown-menu-md-right {
    right: 0;
    left: auto;
  }
}
@media (min-width: 992px) {
  .dropdown-menu-lg-left {
    right: auto;
    left: 0;
  }
  .dropdown-menu-lg-right {
    right: 0;
    left: auto;
  }
}
@media (min-width: 1200px) {
  .dropdown-menu-xl-left {
    right: auto;
    left: 0;
  }
  .dropdown-menu-xl-right {
    right: 0;
    left: auto;
  }
}
.dropup .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-top: 0;
  margin-bottom: 0.125rem;
}
.dropup .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0;
  border-right: 0.3em solid transparent;
  border-bottom: 0.3em solid;
  border-left: 0.3em solid transparent;
}
.dropup .dropdown-toggle:empty::after {
  margin-left: 0;
}

.dropright .dropdown-menu {
  top: 0;
  right: auto;
  left: 100%;
  margin-top: 0;
  margin-left: 0.125rem;
}
.dropright .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid transparent;
  border-right: 0;
  border-bottom: 0.3em solid transparent;
  border-left: 0.3em solid;
}
.dropright .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropright .dropdown-toggle::after {
  vertical-align: 0;
}

.dropleft .dropdown-menu {
  top: 0;
  right: 100%;
  left: auto;
  margin-top: 0;
  margin-right: 0.125rem;
}
.dropleft .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
}
.dropleft .dropdown-toggle::after {
  display: none;
}
.dropleft .dropdown-toggle::before {
  display: inline-block;
  margin-right: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid transparent;
  border-right: 0.3em solid;
  border-bottom: 0.3em solid transparent;
}
.dropleft .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropleft .dropdown-toggle::before {
  vertical-align: 0;
}

.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] {
  right: auto;
  bottom: auto;
}

.dropdown-divider {
  height: 0;
  margin: 10px 0;
  overflow: hidden;
  border-top: 1px solid #f1f1f1;
}

.dropdown-item {
  display: block;
  width: 100%;
  padding: 0.25rem 1.5rem;
  clear: both;
  font-weight: 400;
  color: #212529;
  text-align: inherit;
  white-space: nowrap;
  background-color: transparent;
  border: 0;
}
.dropdown-item:hover, .dropdown-item:focus {
  color: #16181b;
  text-decoration: none;
  background-color: #f1f1f1;
}
.dropdown-item.active, .dropdown-item:active {
  color: #ffffff;
  text-decoration: none;
  background-color: #43d477;
}
.dropdown-item.disabled, .dropdown-item:disabled {
  color: #adb5bd;
  pointer-events: none;
  background-color: transparent;
}

.dropdown-menu.show {
  display: block;
}

.dropdown-header {
  display: block;
  padding: 0.5rem 1.5rem;
  margin-bottom: 0;
  font-size: 1rem;
  color: #6c757d;
  white-space: nowrap;
}

.dropdown-item-text {
  display: block;
  padding: 0.25rem 1.5rem;
  color: #212529;
}

.alert {
  position: relative;
  padding: 2rem 2rem;
  margin-bottom: 0;
  border: 1px solid transparent;
  border-radius: 1rem;
}

.alert-heading {
  color: inherit;
}

.alert-link {
  font-weight: 700;
}

.alert-dismissible {
  padding-right: 5.5rem;
}
.alert-dismissible .close {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  padding: 2rem 2rem;
  color: inherit;
}

.alert-primary {
  color: #343434;
  background-color: #43d477;
  border-color: #43d477;
}
.alert-primary hr {
  border-top-color: #2fce68;
}
.alert-primary .alert-link {
  color: #1b1b1b;
}

.alert-secondary {
  color: #343434;
  background-color: #1f3b64;
  border-color: #1f3b64;
}
.alert-secondary hr {
  border-top-color: #193051;
}
.alert-secondary .alert-link {
  color: #1b1b1b;
}

.alert-success {
  color: #343434;
  background-color: #e7f4f0;
  border-color: #e7f4f0;
}
.alert-success hr {
  border-top-color: #d6ece5;
}
.alert-success .alert-link {
  color: #1b1b1b;
}

.alert-info {
  color: #343434;
  background-color: #ebf7ff;
  border-color: #ebf7ff;
}
.alert-info hr {
  border-top-color: #d2edff;
}
.alert-info .alert-link {
  color: #1b1b1b;
}

.alert-warning {
  color: #343434;
  background-color: #ffab00;
  border-color: #ffab00;
}
.alert-warning hr {
  border-top-color: #e69a00;
}
.alert-warning .alert-link {
  color: #1b1b1b;
}

.alert-danger {
  color: #343434;
  background-color: #f63c3c;
  border-color: #f63c3c;
}
.alert-danger hr {
  border-top-color: #f52424;
}
.alert-danger .alert-link {
  color: #1b1b1b;
}

.alert-light {
  color: #343434;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
}
.alert-light hr {
  border-top-color: #ececec;
}
.alert-light .alert-link {
  color: #1b1b1b;
}

.alert-dark {
  color: #343434;
  background-color: #343434;
  border-color: #343434;
}
.alert-dark hr {
  border-top-color: #272727;
}
.alert-dark .alert-link {
  color: #1b1b1b;
}

.alert-white {
  color: #343434;
  background-color: white;
  border-color: white;
}
.alert-white hr {
  border-top-color: #f2f2f2;
}
.alert-white .alert-link {
  color: #1b1b1b;
}

.alert-gray {
  color: #343434;
  background-color: #818894;
  border-color: #818894;
}
.alert-gray hr {
  border-top-color: #737b88;
}
.alert-gray .alert-link {
  color: #1b1b1b;
}

.alert-gray300 {
  color: #343434;
  background-color: #ececec;
  border-color: #ececec;
}
.alert-gray300 hr {
  border-top-color: #dfdfdf;
}
.alert-gray300 .alert-link {
  color: #1b1b1b;
}

.alert-gray200 {
  color: #343434;
  background-color: #f1f1f1;
  border-color: #f1f1f1;
}
.alert-gray200 hr {
  border-top-color: #e4e4e4;
}
.alert-gray200 .alert-link {
  color: #1b1b1b;
}

.alert-gray100 {
  color: #343434;
  background-color: #f9f9f9;
  border-color: #f9f9f9;
}
.alert-gray100 hr {
  border-top-color: #ececec;
}
.alert-gray100 .alert-link {
  color: #1b1b1b;
}

@keyframes progress-bar-stripes {
  from {
    background-position: 1rem 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  display: flex;
  height: 1rem;
  overflow: hidden;
  line-height: 0;
  font-size: 0.75rem;
  background-color: #f1f1f1;
  border-radius: 0.3125rem;
  box-shadow: inset 0 0.1rem 0.1rem rgba(52, 52, 52, 0.1);
}

.progress-bar {
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  color: #ffffff;
  text-align: center;
  white-space: nowrap;
  background-color: #43d477;
  transition: width 0.6s ease;
}
@media (prefers-reduced-motion: reduce) {
  .progress-bar {
    transition: none;
  }
}

.progress-bar-striped {
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 1rem 1rem;
}

.progress-bar-animated {
  animation: 1s linear infinite progress-bar-stripes;
}
@media (prefers-reduced-motion: reduce) {
  .progress-bar-animated {
    animation: none;
  }
}

.close {
  float: right;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  color: #343434;
  text-shadow: 0 1px 0 #ffffff;
  opacity: 0.5;
}
.close:hover {
  color: #343434;
  text-decoration: none;
}
.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
  opacity: 0.75;
}

button.close {
  padding: 0;
  background-color: transparent;
  border: 0;
}

a.close.disabled {
  pointer-events: none;
}

.toast {
  flex-basis: 350px;
  max-width: 350px;
  font-size: 0.875rem;
  background-color: rgba(255, 255, 255, 0.85);
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 0.25rem 0.75rem rgba(52, 52, 52, 0.1);
  opacity: 0;
  border-radius: 0.25rem;
}
.toast:not(:last-child) {
  margin-bottom: 0.75rem;
}
.toast.showing {
  opacity: 1;
}
.toast.show {
  display: block;
  opacity: 1;
}
.toast.hide {
  display: none;
}

.toast-header {
  display: flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  color: #6c757d;
  background-color: rgba(255, 255, 255, 0.85);
  background-clip: padding-box;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  border-top-left-radius: calc(0.25rem - 1px);
  border-top-right-radius: calc(0.25rem - 1px);
}

.toast-body {
  padding: 0.75rem;
}

.modal-open {
  overflow: hidden;
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: 0;
}

.modal-dialog {
  position: relative;
  width: auto;
  margin: 0.5rem;
  pointer-events: none;
}
.modal.fade .modal-dialog {
  transition: transform 0.3s ease-out;
  transform: translate(0, -50px);
}
@media (prefers-reduced-motion: reduce) {
  .modal.fade .modal-dialog {
    transition: none;
  }
}
.modal.show .modal-dialog {
  transform: none;
}
.modal.modal-static .modal-dialog {
  transform: scale(1.02);
}

.modal-dialog-scrollable {
  display: flex;
  max-height: calc(100% - 1rem);
}
.modal-dialog-scrollable .modal-content {
  max-height: calc(100vh - 1rem);
  overflow: hidden;
}
.modal-dialog-scrollable .modal-header,
.modal-dialog-scrollable .modal-footer {
  flex-shrink: 0;
}
.modal-dialog-scrollable .modal-body {
  overflow-y: auto;
}

.modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - 1rem);
}
.modal-dialog-centered::before {
  display: block;
  height: calc(100vh - 1rem);
  height: -moz-min-content;
  height: min-content;
  content: "";
}
.modal-dialog-centered.modal-dialog-scrollable {
  flex-direction: column;
  justify-content: center;
  height: 100%;
}
.modal-dialog-centered.modal-dialog-scrollable .modal-content {
  max-height: none;
}
.modal-dialog-centered.modal-dialog-scrollable::before {
  content: none;
}

.modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #ffffff;
  background-clip: padding-box;
  border: 1px solid rgba(52, 52, 52, 0.2);
  border-radius: 0.9375rem;
  box-shadow: 0 0.25rem 0.5rem rgba(52, 52, 52, 0.5);
  outline: 0;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  width: 100vw;
  height: 100vh;
  background-color: #343434;
}
.modal-backdrop.fade {
  opacity: 0;
}
.modal-backdrop.show {
  opacity: 0.5;
}

.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1rem 1rem;
  border-bottom: 1px solid #ececec;
  border-top-left-radius: calc(0.9375rem - 1px);
  border-top-right-radius: calc(0.9375rem - 1px);
}
.modal-header .close {
  padding: 1rem 1rem;
  margin: -1rem -1rem -1rem auto;
}

.modal-title {
  margin-bottom: 0;
  line-height: 1.3;
}

.modal-body {
  position: relative;
  flex: 1 1 auto;
  padding: 1rem;
}

.modal-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  padding: 0.75rem;
  border-top: 1px solid #ececec;
  border-bottom-right-radius: calc(0.9375rem - 1px);
  border-bottom-left-radius: calc(0.9375rem - 1px);
}
.modal-footer > * {
  margin: 0.25rem;
}

.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}

@media (min-width: 576px) {
  .modal-dialog {
    max-width: 500px;
    margin: 1.75rem auto;
  }
  .modal-dialog-scrollable {
    max-height: calc(100% - 3.5rem);
  }
  .modal-dialog-scrollable .modal-content {
    max-height: calc(100vh - 3.5rem);
  }
  .modal-dialog-centered {
    min-height: calc(100% - 3.5rem);
  }
  .modal-dialog-centered::before {
    height: calc(100vh - 3.5rem);
    height: -moz-min-content;
    height: min-content;
  }
  .modal-content {
    box-shadow: 0 0.5rem 1rem rgba(52, 52, 52, 0.5);
  }
  .modal-sm {
    max-width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg,
  .modal-xl {
    max-width: 800px;
  }
}
@media (min-width: 1200px) {
  .modal-xl {
    max-width: 1140px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  margin: 0;
  font-family: "main-font-family";
  font-style: normal;
  font-weight: 400;
  line-height: 1.3;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  white-space: normal;
  word-spacing: normal;
  line-break: auto;
  font-size: 0.75rem;
  word-wrap: break-word;
  opacity: 0;
}
.tooltip.show {
  opacity: 0.9;
}
.tooltip .arrow {
  position: absolute;
  display: block;
  width: 0.8rem;
  height: 0.4rem;
}
.tooltip .arrow::before {
  position: absolute;
  content: "";
  border-color: transparent;
  border-style: solid;
}

.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] {
  padding: 0.4rem 0;
}
.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow {
  bottom: 0;
}
.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before {
  top: 0;
  border-width: 0.4rem 0.4rem 0;
  border-top-color: #818894;
}

.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] {
  padding: 0 0.4rem;
}
.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow {
  left: 0;
  width: 0.4rem;
  height: 0.8rem;
}
.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before {
  right: 0;
  border-width: 0.4rem 0.4rem 0.4rem 0;
  border-right-color: #818894;
}

.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] {
  padding: 0.4rem 0;
}
.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow {
  top: 0;
}
.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before {
  bottom: 0;
  border-width: 0 0.4rem 0.4rem;
  border-bottom-color: #818894;
}

.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] {
  padding: 0 0.4rem;
}
.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow {
  right: 0;
  width: 0.4rem;
  height: 0.8rem;
}
.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before {
  left: 0;
  border-width: 0.4rem 0 0.4rem 0.4rem;
  border-left-color: #818894;
}

.tooltip-inner {
  max-width: 200px;
  padding: 0.25rem 0.5rem;
  color: #ffffff;
  text-align: center;
  background-color: #818894;
  border-radius: 5px;
}

.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: block;
  max-width: 276px;
  font-family: "main-font-family";
  font-style: normal;
  font-weight: 400;
  line-height: 1.3;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  white-space: normal;
  word-spacing: normal;
  line-break: auto;
  font-size: 1rem;
  word-wrap: break-word;
  background-color: #ffffff;
  background-clip: padding-box;
  border: 1px solid rgba(52, 52, 52, 0.2);
  border-radius: 0.9375rem;
  box-shadow: 0 0.25rem 0.5rem rgba(52, 52, 52, 0.2);
}
.popover .arrow {
  position: absolute;
  display: block;
  width: 1rem;
  height: 0.5rem;
  margin: 0 0.9375rem;
}
.popover .arrow::before, .popover .arrow::after {
  position: absolute;
  display: block;
  content: "";
  border-color: transparent;
  border-style: solid;
}

.bs-popover-top, .bs-popover-auto[x-placement^=top] {
  margin-bottom: 0.5rem;
}
.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=top] > .arrow {
  bottom: calc(-0.5rem - 1px);
}
.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=top] > .arrow::before {
  bottom: 0;
  border-width: 0.5rem 0.5rem 0;
  border-top-color: rgba(52, 52, 52, 0.25);
}
.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=top] > .arrow::after {
  bottom: 1px;
  border-width: 0.5rem 0.5rem 0;
  border-top-color: #ffffff;
}

.bs-popover-right, .bs-popover-auto[x-placement^=right] {
  margin-left: 0.5rem;
}
.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=right] > .arrow {
  left: calc(-0.5rem - 1px);
  width: 0.5rem;
  height: 1rem;
  margin: 0.9375rem 0;
}
.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=right] > .arrow::before {
  left: 0;
  border-width: 0.5rem 0.5rem 0.5rem 0;
  border-right-color: rgba(52, 52, 52, 0.25);
}
.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=right] > .arrow::after {
  left: 1px;
  border-width: 0.5rem 0.5rem 0.5rem 0;
  border-right-color: #ffffff;
}

.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom] {
  margin-top: 0.5rem;
}
.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=bottom] > .arrow {
  top: calc(-0.5rem - 1px);
}
.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=bottom] > .arrow::before {
  top: 0;
  border-width: 0 0.5rem 0.5rem 0.5rem;
  border-bottom-color: rgba(52, 52, 52, 0.25);
}
.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=bottom] > .arrow::after {
  top: 1px;
  border-width: 0 0.5rem 0.5rem 0.5rem;
  border-bottom-color: #ffffff;
}
.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before {
  position: absolute;
  top: 0;
  left: 50%;
  display: block;
  width: 1rem;
  margin-left: -0.5rem;
  content: "";
  border-bottom: 1px solid #f7f7f7;
}

.bs-popover-left, .bs-popover-auto[x-placement^=left] {
  margin-right: 0.5rem;
}
.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=left] > .arrow {
  right: calc(-0.5rem - 1px);
  width: 0.5rem;
  height: 1rem;
  margin: 0.9375rem 0;
}
.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=left] > .arrow::before {
  right: 0;
  border-width: 0.5rem 0 0.5rem 0.5rem;
  border-left-color: rgba(52, 52, 52, 0.25);
}
.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=left] > .arrow::after {
  right: 1px;
  border-width: 0.5rem 0 0.5rem 0.5rem;
  border-left-color: #ffffff;
}

.popover-header {
  padding: 0.5rem 0.75rem;
  margin-bottom: 0;
  font-size: 1rem;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-top-left-radius: calc(0.9375rem - 1px);
  border-top-right-radius: calc(0.9375rem - 1px);
}
.popover-header:empty {
  display: none;
}

.popover-body {
  padding: 0.5rem 0.75rem;
  color: #343434;
}

.carousel {
  position: relative;
}

.carousel.pointer-event {
  touch-action: pan-y;
}

.carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.carousel-inner::after {
  display: block;
  clear: both;
  content: "";
}

.carousel-item {
  position: relative;
  display: none;
  float: left;
  width: 100%;
  margin-right: -100%;
  backface-visibility: hidden;
  transition: transform 0.6s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-item {
    transition: none;
  }
}

.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
  display: block;
}

.carousel-item-next:not(.carousel-item-left),
.active.carousel-item-right {
  transform: translateX(100%);
}

.carousel-item-prev:not(.carousel-item-right),
.active.carousel-item-left {
  transform: translateX(-100%);
}

.carousel-fade .carousel-item {
  opacity: 0;
  transition-property: opacity;
  transform: none;
}
.carousel-fade .carousel-item.active,
.carousel-fade .carousel-item-next.carousel-item-left,
.carousel-fade .carousel-item-prev.carousel-item-right {
  z-index: 1;
  opacity: 1;
}
.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
  z-index: 0;
  opacity: 0;
  transition: opacity 0s 0.6s;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-fade .active.carousel-item-left,
  .carousel-fade .active.carousel-item-right {
    transition: none;
  }
}

.carousel-control-prev,
.carousel-control-next {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15%;
  padding: 0;
  color: #ffffff;
  text-align: center;
  background: none;
  border: 0;
  opacity: 0.5;
  transition: opacity 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-control-prev,
  .carousel-control-next {
    transition: none;
  }
}
.carousel-control-prev:hover, .carousel-control-prev:focus,
.carousel-control-next:hover,
.carousel-control-next:focus {
  color: #ffffff;
  text-decoration: none;
  outline: 0;
  opacity: 0.9;
}

.carousel-control-prev {
  left: 0;
}

.carousel-control-next {
  right: 0;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  background: 50%/100% 100% no-repeat;
}

.carousel-control-prev-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e");
}

.carousel-control-next-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e");
}

.carousel-indicators {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 15;
  display: flex;
  justify-content: center;
  padding-left: 0;
  margin-right: 15%;
  margin-left: 15%;
  list-style: none;
}
.carousel-indicators li {
  box-sizing: content-box;
  flex: 0 1 auto;
  width: 30px;
  height: 3px;
  margin-right: 3px;
  margin-left: 3px;
  text-indent: -999px;
  cursor: pointer;
  background-color: #ffffff;
  background-clip: padding-box;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  opacity: 0.5;
  transition: opacity 0.6s ease;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-indicators li {
    transition: none;
  }
}
.carousel-indicators .active {
  opacity: 1;
}

.carousel-caption {
  position: absolute;
  right: 15%;
  bottom: 20px;
  left: 15%;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #ffffff;
  text-align: center;
}

@keyframes spinner-border {
  to {
    transform: rotate(360deg);
  }
}
.spinner-border {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  vertical-align: -0.125em;
  border: 0.25em solid currentcolor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: 0.75s linear infinite spinner-border;
}

.spinner-border-sm {
  width: 1rem;
  height: 1rem;
  border-width: 0.2em;
}

@keyframes spinner-grow {
  0% {
    transform: scale(0);
  }
  50% {
    opacity: 1;
    transform: none;
  }
}
.spinner-grow {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  vertical-align: -0.125em;
  background-color: currentcolor;
  border-radius: 50%;
  opacity: 0;
  animation: 0.75s linear infinite spinner-grow;
}

.spinner-grow-sm {
  width: 1rem;
  height: 1rem;
}

@media (prefers-reduced-motion: reduce) {
  .spinner-border,
  .spinner-grow {
    animation-duration: 1.5s;
  }
}
.align-baseline {
  vertical-align: baseline !important;
}

.align-top {
  vertical-align: top !important;
}

.align-middle {
  vertical-align: middle !important;
}

.align-bottom {
  vertical-align: bottom !important;
}

.align-text-bottom {
  vertical-align: text-bottom !important;
}

.align-text-top {
  vertical-align: text-top !important;
}

.bg-primary {
  background-color: #43d477 !important;
}

a.bg-primary:hover, a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
  background-color: #2aba5e !important;
}

.bg-secondary {
  background-color: #1f3b64 !important;
}

a.bg-secondary:hover, a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
  background-color: #13243d !important;
}

.bg-success {
  background-color: #e7f4f0 !important;
}

a.bg-success:hover, a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus {
  background-color: #c4e4da !important;
}

.bg-info {
  background-color: #ebf7ff !important;
}

a.bg-info:hover, a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus {
  background-color: #b8e3ff !important;
}
.bg-graphite-tech {
    position: relative;
    overflow: hidden;

    background:
        radial-gradient(
            circle at top left,
            rgba(124,58,237,.22) 0%,
            transparent 28%
        ),
        radial-gradient(
            circle at bottom right,
            rgba(0,219,255,.12) 0%,
            transparent 30%
        ),
        linear-gradient(
            145deg,
            #0F172A 0%,
            #111827 22%,
            #161B2E 52%,
            #0B1023 78%,
            #070B16 100%
        ) !important;

    border:
        1px solid rgba(255,255,255,.08);

    box-shadow:
        0 10px 40px rgba(0,0,0,.55),
        0 0 28px rgba(124,58,237,.16),
        inset 0 1px 0 rgba(255,255,255,.04),
        inset 0 -1px 0 rgba(255,255,255,.02);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    border-radius: 22px;

    color: #FFFFFF !important;

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border .35s ease,
        background .35s ease;
}

/* Glow layer */
.bg-graphite-tech::before {
    content: "";

    position: absolute;
    inset: -2px;

    background:
        linear-gradient(
            135deg,
            rgba(124,58,237,.18),
            rgba(0,219,255,.08),
            transparent,
            rgba(124,58,237,.12)
        );

    opacity: .55;
    z-index: 0;
    pointer-events: none;

    filter: blur(22px);
}

/* Glass shine */
.bg-graphite-tech::after {
    content: "";

    position: absolute;
    top: 0;
    left: -120%;

    width: 80%;
    height: 100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.05),
            transparent
        );

    transform: skewX(-18deg);

    transition: left .9s ease;
}

/* Hover */
a.bg-graphite-tech:hover,
a.bg-graphite-tech:focus,
button.bg-graphite-tech:hover,
button.bg-graphite-tech:focus,
.bg-graphite-tech:hover {

    transform:
        translateY(-4px)
        scale(1.01);

    background:
        radial-gradient(
            circle at top left,
            rgba(124,58,237,.30) 0%,
            transparent 30%
        ),
        radial-gradient(
            circle at bottom right,
            rgba(0,219,255,.18) 0%,
            transparent 32%
        ),
        linear-gradient(
            145deg,
            #131C31 0%,
            #172033 25%,
            #1A2540 55%,
            #111827 100%
        ) !important;

    border:
        1px solid rgba(124,58,237,.22);

    box-shadow:
        0 18px 48px rgba(0,0,0,.62),
        0 0 34px rgba(124,58,237,.24),
        0 0 18px rgba(0,219,255,.12),
        inset 0 1px 0 rgba(255,255,255,.05);

    color: #FFFFFF !important;
}

/* Animated shine */
.bg-graphite-tech:hover::after {
    left: 140%;
}
.bg-warning {
  background-color: #ffab00 !important;
}

a.bg-warning:hover, a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus {
  background-color: #cc8900 !important;
}

.bg-danger {
  background-color: #f63c3c !important;
}

a.bg-danger:hover, a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus {
  background-color: #f40b0b !important;
}

.bg-light {
  background-color: #f9f9f9 !important;
}

a.bg-light:hover, a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
  background-color: #e0e0e0 !important;
}

.bg-dark {
  background-color: #343434 !important;
}

a.bg-dark:hover, a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
  background-color: #1b1b1b !important;
}

.bg-white {
  background-color: #ffffff !important;
}

a.bg-white:hover, a.bg-white:focus,
button.bg-white:hover,
button.bg-white:focus {
  background-color: #e6e6e6 !important;
}

.bg-gray {
  background-color: #818894 !important;
}

a.bg-gray:hover, a.bg-gray:focus,
button.bg-gray:hover,
button.bg-gray:focus {
  background-color: #686f7a !important;
}

.bg-gray300 {
  background-color: #ececec !important;
}

a.bg-gray300:hover, a.bg-gray300:focus,
button.bg-gray300:hover,
button.bg-gray300:focus {
  background-color: lightgray !important;
}

.bg-gray200 {
  background-color: #f1f1f1 !important;
}

a.bg-gray200:hover, a.bg-gray200:focus,
button.bg-gray200:hover,
button.bg-gray200:focus {
  background-color: #d8d8d8 !important;
}

.bg-gray100 {
  background-color: #f9f9f9 !important;
}

a.bg-gray100:hover, a.bg-gray100:focus,
button.bg-gray100:hover,
button.bg-gray100:focus {
  background-color: #e0e0e0 !important;
}

.bg-white {
  background-color: #ffffff !important;
}

.bg-transparent {
  background-color: transparent !important;
}

.border {
  border: 1px solid #ececec !important;
}

.border-top {
  border-top: 1px solid #ececec !important;
}

.border-right {
  border-right: 1px solid #ececec !important;
}

.border-bottom {
  border-bottom: 1px solid #ececec !important;
}

.border-left {
  border-left: 1px solid #ececec !important;
}

.border-0 {
  border: 0 !important;
}

.border-top-0 {
  border-top: 0 !important;
}

.border-right-0 {
  border-right: 0 !important;
}

.border-bottom-0 {
  border-bottom: 0 !important;
}

.border-left-0 {
  border-left: 0 !important;
}

.border-primary {
  border-color: #43d477 !important;
}

.border-secondary {
  border-color: #1f3b64 !important;
}

.border-success {
  border-color: #e7f4f0 !important;
}

.border-info {
  border-color: #ebf7ff !important;
}

.border-warning {
  border-color: #ffab00 !important;
}

.border-danger {
  border-color: #f63c3c !important;
}

.border-light {
  border-color: #f9f9f9 !important;
}

.border-dark {
  border-color: #343434 !important;
}

.border-white {
  border-color: #ffffff !important;
}

.border-gray {
  border-color: #818894 !important;
}

.border-gray300 {
  border-color: #ececec !important;
}

.border-gray200 {
  border-color: #f1f1f1 !important;
}

.border-gray100 {
  border-color: #f9f9f9 !important;
}

.border-white {
  border-color: #ffffff !important;
}

.rounded-sm {
  border-radius: 0.625rem !important;
}

.rounded {
  border-radius: 0.3125rem !important;
}

.rounded-top {
  border-top-left-radius: 0.3125rem !important;
  border-top-right-radius: 0.3125rem !important;
}

.rounded-right {
  border-top-right-radius: 0.3125rem !important;
  border-bottom-right-radius: 0.3125rem !important;
}

.rounded-bottom {
  border-bottom-right-radius: 0.3125rem !important;
  border-bottom-left-radius: 0.3125rem !important;
}

.rounded-left {
  border-top-left-radius: 0.3125rem !important;
  border-bottom-left-radius: 0.3125rem !important;
}

.rounded-lg {
  border-radius: 0.9375rem !important;
}

.rounded-circle {
  border-radius: 50% !important;
}

.rounded-pill {
  border-radius: 50rem !important;
}

.rounded-0 {
  border-radius: 0 !important;
}

.clearfix::after {
  display: block;
  clear: both;
  content: "";
}

.d-none {
  display: none !important;
}

.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-block {
  display: block !important;
}

.d-table {
  display: table !important;
}

.d-table-row {
  display: table-row !important;
}

.d-table-cell {
  display: table-cell !important;
}

.d-flex {
  display: flex !important;
}

.d-inline-flex {
  display: inline-flex !important;
}

@media (min-width: 576px) {
  .d-sm-none {
    display: none !important;
  }
  .d-sm-inline {
    display: inline !important;
  }
  .d-sm-inline-block {
    display: inline-block !important;
  }
  .d-sm-block {
    display: block !important;
  }
  .d-sm-table {
    display: table !important;
  }
  .d-sm-table-row {
    display: table-row !important;
  }
  .d-sm-table-cell {
    display: table-cell !important;
  }
  .d-sm-flex {
    display: flex !important;
  }
  .d-sm-inline-flex {
    display: inline-flex !important;
  }
}
@media (min-width: 768px) {
  .d-md-none {
    display: none !important;
  }
  .d-md-inline {
    display: inline !important;
  }
  .d-md-inline-block {
    display: inline-block !important;
  }
  .d-md-block {
    display: block !important;
  }
  .d-md-table {
    display: table !important;
  }
  .d-md-table-row {
    display: table-row !important;
  }
  .d-md-table-cell {
    display: table-cell !important;
  }
  .d-md-flex {
    display: flex !important;
  }
  .d-md-inline-flex {
    display: inline-flex !important;
  }
}
@media (min-width: 992px) {
  .d-lg-none {
    display: none !important;
  }
  .d-lg-inline {
    display: inline !important;
  }
  .d-lg-inline-block {
    display: inline-block !important;
  }
  .d-lg-block {
    display: block !important;
  }
  .d-lg-table {
    display: table !important;
  }
  .d-lg-table-row {
    display: table-row !important;
  }
  .d-lg-table-cell {
    display: table-cell !important;
  }
  .d-lg-flex {
    display: flex !important;
  }
  .d-lg-inline-flex {
    display: inline-flex !important;
  }
}
@media (min-width: 1200px) {
  .d-xl-none {
    display: none !important;
  }
  .d-xl-inline {
    display: inline !important;
  }
  .d-xl-inline-block {
    display: inline-block !important;
  }
  .d-xl-block {
    display: block !important;
  }
  .d-xl-table {
    display: table !important;
  }
  .d-xl-table-row {
    display: table-row !important;
  }
  .d-xl-table-cell {
    display: table-cell !important;
  }
  .d-xl-flex {
    display: flex !important;
  }
  .d-xl-inline-flex {
    display: inline-flex !important;
  }
}
@media print {
  .d-print-none {
    display: none !important;
  }
  .d-print-inline {
    display: inline !important;
  }
  .d-print-inline-block {
    display: inline-block !important;
  }
  .d-print-block {
    display: block !important;
  }
  .d-print-table {
    display: table !important;
  }
  .d-print-table-row {
    display: table-row !important;
  }
  .d-print-table-cell {
    display: table-cell !important;
  }
  .d-print-flex {
    display: flex !important;
  }
  .d-print-inline-flex {
    display: inline-flex !important;
  }
}
.embed-responsive {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
}
.embed-responsive::before {
  display: block;
  content: "";
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.embed-responsive-21by9::before {
  padding-top: 42.85714286%;
}

.embed-responsive-16by9::before {
  padding-top: 56.25%;
}

.embed-responsive-4by3::before {
  padding-top: 75%;
}

.embed-responsive-1by1::before {
  padding-top: 100%;
}

.flex-row {
  flex-direction: row !important;
}

.flex-column {
  flex-direction: column !important;
}

.flex-row-reverse {
  flex-direction: row-reverse !important;
}

.flex-column-reverse {
  flex-direction: column-reverse !important;
}

.flex-wrap {
  flex-wrap: wrap !important;
}

.flex-nowrap {
  flex-wrap: nowrap !important;
}

.flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}

.flex-fill {
  flex: 1 1 auto !important;
}

.flex-grow-0 {
  flex-grow: 0 !important;
}

.flex-grow-1 {
  flex-grow: 1 !important;
}

.flex-shrink-0 {
  flex-shrink: 0 !important;
}

.flex-shrink-1 {
  flex-shrink: 1 !important;
}

.justify-content-start {
  justify-content: flex-start !important;
}

.justify-content-end {
  justify-content: flex-end !important;
}

.justify-content-center {
  justify-content: center !important;
}

.justify-content-between {
  justify-content: space-between !important;
}

.justify-content-around {
  justify-content: space-around !important;
}

.align-items-start {
  align-items: flex-start !important;
}

.align-items-end {
  align-items: flex-end !important;
}

.align-items-center {
  align-items: center !important;
}

.align-items-baseline {
  align-items: baseline !important;
}

.align-items-stretch {
  align-items: stretch !important;
}

.align-content-start {
  align-content: flex-start !important;
}

.align-content-end {
  align-content: flex-end !important;
}

.align-content-center {
  align-content: center !important;
}

.align-content-between {
  align-content: space-between !important;
}

.align-content-around {
  align-content: space-around !important;
}

.align-content-stretch {
  align-content: stretch !important;
}

.align-self-auto {
  align-self: auto !important;
}

.align-self-start {
  align-self: flex-start !important;
}

.align-self-end {
  align-self: flex-end !important;
}

.align-self-center {
  align-self: center !important;
}

.align-self-baseline {
  align-self: baseline !important;
}

.align-self-stretch {
  align-self: stretch !important;
}

@media (min-width: 576px) {
  .flex-sm-row {
    flex-direction: row !important;
  }
  .flex-sm-column {
    flex-direction: column !important;
  }
  .flex-sm-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-sm-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-sm-wrap {
    flex-wrap: wrap !important;
  }
  .flex-sm-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-sm-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .flex-sm-fill {
    flex: 1 1 auto !important;
  }
  .flex-sm-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-sm-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-sm-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-sm-shrink-1 {
    flex-shrink: 1 !important;
  }
  .justify-content-sm-start {
    justify-content: flex-start !important;
  }
  .justify-content-sm-end {
    justify-content: flex-end !important;
  }
  .justify-content-sm-center {
    justify-content: center !important;
  }
  .justify-content-sm-between {
    justify-content: space-between !important;
  }
  .justify-content-sm-around {
    justify-content: space-around !important;
  }
  .align-items-sm-start {
    align-items: flex-start !important;
  }
  .align-items-sm-end {
    align-items: flex-end !important;
  }
  .align-items-sm-center {
    align-items: center !important;
  }
  .align-items-sm-baseline {
    align-items: baseline !important;
  }
  .align-items-sm-stretch {
    align-items: stretch !important;
  }
  .align-content-sm-start {
    align-content: flex-start !important;
  }
  .align-content-sm-end {
    align-content: flex-end !important;
  }
  .align-content-sm-center {
    align-content: center !important;
  }
  .align-content-sm-between {
    align-content: space-between !important;
  }
  .align-content-sm-around {
    align-content: space-around !important;
  }
  .align-content-sm-stretch {
    align-content: stretch !important;
  }
  .align-self-sm-auto {
    align-self: auto !important;
  }
  .align-self-sm-start {
    align-self: flex-start !important;
  }
  .align-self-sm-end {
    align-self: flex-end !important;
  }
  .align-self-sm-center {
    align-self: center !important;
  }
  .align-self-sm-baseline {
    align-self: baseline !important;
  }
  .align-self-sm-stretch {
    align-self: stretch !important;
  }
}
@media (min-width: 768px) {
  .flex-md-row {
    flex-direction: row !important;
  }
  .flex-md-column {
    flex-direction: column !important;
  }
  .flex-md-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-md-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-md-wrap {
    flex-wrap: wrap !important;
  }
  .flex-md-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-md-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .flex-md-fill {
    flex: 1 1 auto !important;
  }
  .flex-md-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-md-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-md-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-md-shrink-1 {
    flex-shrink: 1 !important;
  }
  .justify-content-md-start {
    justify-content: flex-start !important;
  }
  .justify-content-md-end {
    justify-content: flex-end !important;
  }
  .justify-content-md-center {
    justify-content: center !important;
  }
  .justify-content-md-between {
    justify-content: space-between !important;
  }
  .justify-content-md-around {
    justify-content: space-around !important;
  }
  .align-items-md-start {
    align-items: flex-start !important;
  }
  .align-items-md-end {
    align-items: flex-end !important;
  }
  .align-items-md-center {
    align-items: center !important;
  }
  .align-items-md-baseline {
    align-items: baseline !important;
  }
  .align-items-md-stretch {
    align-items: stretch !important;
  }
  .align-content-md-start {
    align-content: flex-start !important;
  }
  .align-content-md-end {
    align-content: flex-end !important;
  }
  .align-content-md-center {
    align-content: center !important;
  }
  .align-content-md-between {
    align-content: space-between !important;
  }
  .align-content-md-around {
    align-content: space-around !important;
  }
  .align-content-md-stretch {
    align-content: stretch !important;
  }
  .align-self-md-auto {
    align-self: auto !important;
  }
  .align-self-md-start {
    align-self: flex-start !important;
  }
  .align-self-md-end {
    align-self: flex-end !important;
  }
  .align-self-md-center {
    align-self: center !important;
  }
  .align-self-md-baseline {
    align-self: baseline !important;
  }
  .align-self-md-stretch {
    align-self: stretch !important;
  }
}
@media (min-width: 992px) {
  .flex-lg-row {
    flex-direction: row !important;
  }
  .flex-lg-column {
    flex-direction: column !important;
  }
  .flex-lg-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-lg-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-lg-wrap {
    flex-wrap: wrap !important;
  }
  .flex-lg-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-lg-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .flex-lg-fill {
    flex: 1 1 auto !important;
  }
  .flex-lg-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-lg-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-lg-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-lg-shrink-1 {
    flex-shrink: 1 !important;
  }
  .justify-content-lg-start {
    justify-content: flex-start !important;
  }
  .justify-content-lg-end {
    justify-content: flex-end !important;
  }
  .justify-content-lg-center {
    justify-content: center !important;
  }
  .justify-content-lg-between {
    justify-content: space-between !important;
  }
  .justify-content-lg-around {
    justify-content: space-around !important;
  }
  .align-items-lg-start {
    align-items: flex-start !important;
  }
  .align-items-lg-end {
    align-items: flex-end !important;
  }
  .align-items-lg-center {
    align-items: center !important;
  }
  .align-items-lg-baseline {
    align-items: baseline !important;
  }
  .align-items-lg-stretch {
    align-items: stretch !important;
  }
  .align-content-lg-start {
    align-content: flex-start !important;
  }
  .align-content-lg-end {
    align-content: flex-end !important;
  }
  .align-content-lg-center {
    align-content: center !important;
  }
  .align-content-lg-between {
    align-content: space-between !important;
  }
  .align-content-lg-around {
    align-content: space-around !important;
  }
  .align-content-lg-stretch {
    align-content: stretch !important;
  }
  .align-self-lg-auto {
    align-self: auto !important;
  }
  .align-self-lg-start {
    align-self: flex-start !important;
  }
  .align-self-lg-end {
    align-self: flex-end !important;
  }
  .align-self-lg-center {
    align-self: center !important;
  }
  .align-self-lg-baseline {
    align-self: baseline !important;
  }
  .align-self-lg-stretch {
    align-self: stretch !important;
  }
}
@media (min-width: 1200px) {
  .flex-xl-row {
    flex-direction: row !important;
  }
  .flex-xl-column {
    flex-direction: column !important;
  }
  .flex-xl-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-xl-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-xl-wrap {
    flex-wrap: wrap !important;
  }
  .flex-xl-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-xl-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .flex-xl-fill {
    flex: 1 1 auto !important;
  }
  .flex-xl-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-xl-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-xl-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-xl-shrink-1 {
    flex-shrink: 1 !important;
  }
  .justify-content-xl-start {
    justify-content: flex-start !important;
  }
  .justify-content-xl-end {
    justify-content: flex-end !important;
  }
  .justify-content-xl-center {
    justify-content: center !important;
  }
  .justify-content-xl-between {
    justify-content: space-between !important;
  }
  .justify-content-xl-around {
    justify-content: space-around !important;
  }
  .align-items-xl-start {
    align-items: flex-start !important;
  }
  .align-items-xl-end {
    align-items: flex-end !important;
  }
  .align-items-xl-center {
    align-items: center !important;
  }
  .align-items-xl-baseline {
    align-items: baseline !important;
  }
  .align-items-xl-stretch {
    align-items: stretch !important;
  }
  .align-content-xl-start {
    align-content: flex-start !important;
  }
  .align-content-xl-end {
    align-content: flex-end !important;
  }
  .align-content-xl-center {
    align-content: center !important;
  }
  .align-content-xl-between {
    align-content: space-between !important;
  }
  .align-content-xl-around {
    align-content: space-around !important;
  }
  .align-content-xl-stretch {
    align-content: stretch !important;
  }
  .align-self-xl-auto {
    align-self: auto !important;
  }
  .align-self-xl-start {
    align-self: flex-start !important;
  }
  .align-self-xl-end {
    align-self: flex-end !important;
  }
  .align-self-xl-center {
    align-self: center !important;
  }
  .align-self-xl-baseline {
    align-self: baseline !important;
  }
  .align-self-xl-stretch {
    align-self: stretch !important;
  }
}
.float-left {
  float: left !important;
}

.float-right {
  float: right !important;
}

.float-none {
  float: none !important;
}

@media (min-width: 576px) {
  .float-sm-left {
    float: left !important;
  }
  .float-sm-right {
    float: right !important;
  }
  .float-sm-none {
    float: none !important;
  }
}
@media (min-width: 768px) {
  .float-md-left {
    float: left !important;
  }
  .float-md-right {
    float: right !important;
  }
  .float-md-none {
    float: none !important;
  }
}
@media (min-width: 992px) {
  .float-lg-left {
    float: left !important;
  }
  .float-lg-right {
    float: right !important;
  }
  .float-lg-none {
    float: none !important;
  }
}
@media (min-width: 1200px) {
  .float-xl-left {
    float: left !important;
  }
  .float-xl-right {
    float: right !important;
  }
  .float-xl-none {
    float: none !important;
  }
}
.user-select-all {
  -webkit-user-select: all !important;
     -moz-user-select: all !important;
          user-select: all !important;
}

.user-select-auto {
  -webkit-user-select: auto !important;
     -moz-user-select: auto !important;
          user-select: auto !important;
}

.user-select-none {
  -webkit-user-select: none !important;
     -moz-user-select: none !important;
          user-select: none !important;
}

.overflow-auto {
  overflow: auto !important;
}

.overflow-hidden {
  overflow: hidden !important;
}

.position-static {
  position: static !important;
}

.position-relative {
  position: relative !important;
}

.position-absolute {
  position: absolute !important;
}

.position-fixed {
  position: fixed !important;
}

.position-sticky {
  position: sticky !important;
}

.fixed-top {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}

.fixed-bottom {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
}

@supports (position: sticky) {
  .sticky-top {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sr-only-focusable:active, .sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.shadow-sm,
.shadow,
.shadow-lg {
    background: rgba(20, 28, 52, 0.92) !important;
    background-color: rgba(20, 28, 52, 0.92) !important;

    border: 1px solid rgba(255, 255, 255, 0.05) !important;

    box-shadow:
        0 10px 30px rgba(0, 0, 0, 0.35),
        0 0 18px rgba(0, 219, 255, 0.08) !important;

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);

    border-radius: 20px;

    transition: all 0.3s ease;
}

.shadow-sm:hover,
.shadow:hover,
.shadow-lg:hover {
    transform: translateY(-2px);

    box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.45),
        0 0 22px rgba(124, 58, 237, 0.12) !important;
}
.shadow-none {
  box-shadow: none !important;
}

.w-25 {
  width: 25% !important;
}

.w-50 {
  width: 50% !important;
}

.w-75 {
  width: 75% !important;
}

.w-100 {
  width: 100% !important;
}

.w-auto {
  width: auto !important;
}

.h-25 {
  height: 25% !important;
}

.h-50 {
  height: 50% !important;
}

.h-75 {
  height: 75% !important;
}

.h-100 {
  height: 100% !important;
}

.h-auto {
  height: auto !important;
}

.mw-100 {
  max-width: 100% !important;
}

.mh-100 {
  max-height: 100% !important;
}

.min-vw-100 {
  min-width: 100vw !important;
}

.min-vh-100 {
  min-height: 100vh !important;
}

.vw-100 {
  width: 100vw !important;
}

.vh-100 {
  height: 100vh !important;
}

.m-0 {
  margin: 0 !important;
}

.mt-0,
.my-0 {
  margin-top: 0 !important;
}

.mr-0,
.mx-0 {
  margin-right: 0 !important;
}

.mb-0,
.my-0 {
  margin-bottom: 0 !important;
}

.ml-0,
.mx-0 {
  margin-left: 0 !important;
}

.m-1 {
  margin: 5px !important;
}

.mt-1,
.my-1 {
  margin-top: 5px !important;
}

.mr-1,
.mx-1 {
  margin-right: 5px !important;
}

.mb-1,
.my-1 {
  margin-bottom: 5px !important;
}

.ml-1,
.mx-1 {
  margin-left: 5px !important;
}

.m-2 {
  margin: 10px !important;
}

.mt-2,
.my-2 {
  margin-top: 10px !important;
}

.mr-2,
.mx-2 {
  margin-right: 10px !important;
}

.mb-2,
.my-2 {
  margin-bottom: 10px !important;
}

.ml-2,
.mx-2 {
  margin-left: 10px !important;
}

.m-3 {
  margin: 20px !important;
}

.mt-3,
.my-3 {
  margin-top: 20px !important;
}

.mr-3,
.mx-3 {
  margin-right: 20px !important;
}

.mb-3,
.my-3 {
  margin-bottom: 20px !important;
}

.ml-3,
.mx-3 {
  margin-left: 20px !important;
}

.m-4 {
  margin: 30px !important;
}

.mt-4,
.my-4 {
  margin-top: 30px !important;
}

.mr-4,
.mx-4 {
  margin-right: 30px !important;
}

.mb-4,
.my-4 {
  margin-bottom: 30px !important;
}

.ml-4,
.mx-4 {
  margin-left: 30px !important;
}

.m-5 {
  margin: 5px !important;
}

.mt-5,
.my-5 {
  margin-top: 5px !important;
}

.mr-5,
.mx-5 {
  margin-right: 5px !important;
}

.mb-5,
.my-5 {
  margin-bottom: 5px !important;
}

.ml-5,
.mx-5 {
  margin-left: 5px !important;
}

.m-10 {
  margin: 10px !important;
}

.mt-10,
.my-10 {
  margin-top: 0px !important;
}

.mt-1000,
.my-10 {
  margin-top: -90px !important;
}



.mr-10,
.mx-10 {
  margin-right: 10px !important;
}

.mb-10,
.my-10 {
  margin-bottom: 10px !important;
}

.ml-10,
.mx-10 {
  margin-left: 10px !important;
}

.m-15 {
  margin: 15px !important;
}

.mt-15,
.my-15 {
  margin-top: 15px !important;
}

.mr-15,
.mx-15 {
  margin-right: 15px !important;
}

.mb-15,
.my-15 {
  margin-bottom: 15px !important;
}

.ml-15,
.mx-15 {
  margin-left: 15px !important;
}

.m-20 {
  margin: 20px !important;
}

.mt-20,
.my-20 {
  margin-top: 20px !important;
}

.mr-20,
.mx-20 {
  margin-right: 20px !important;
}

.mb-20,
.my-20 {
  margin-bottom: 20px !important;
}

.ml-20,
.mx-20 {
  margin-left: 20px !important;
}

.m-25 {
  margin: 25px !important;
}

.mt-25,
.my-25 {
  margin-top: 25px !important;
}

.mr-25,
.mx-25 {
  margin-right: 25px !important;
}

.mb-25,
.my-25 {
  margin-bottom: 25px !important;
}

.ml-25,
.mx-25 {
  margin-left: 25px !important;
}

.mt-300,
.my-300 {
  margin-top: 300px !important;
}
.m-30 {
  margin: 30px !important;
}

.mt-30,
.my-30 {
  margin-top: 30px !important;
}

.mr-30,
.mx-30 {
  margin-right: 30px !important;
}

.mb-30,
.my-30 {
  margin-bottom: 30px !important;
}

.ml-30,
.mx-30 {
  margin-left: 30px !important;
}

.m-35 {
  margin: 35px !important;
}

.mt-35,
.my-35 {
  margin-top: 85px !important;
}

.mr-35,
.mx-35 {
  margin-right: 35px !important;
}

.mb-35,
.my-35 {
  margin-bottom: 35px !important;
}

.ml-35,
.mx-35 {
  margin-left: 35px !important;
}

.m-40 {
  margin: 40px !important;
}

.mt-40,
.my-40 {
  margin-top: 40px !important;
}

.mr-40,
.mx-40 {
  margin-right: 40px !important;
}

.mb-40,
.my-40 {
  margin-bottom: 40px !important;
}

.ml-40,
.mx-40 {
  margin-left: 40px !important;
}

.m-45 {
  margin: 45px !important;
}

.mt-45,
.my-45 {
  margin-top: 45px !important;
}

.mr-45,
.mx-45 {
  margin-right: 45px !important;
}

.mb-45,
.my-45 {
  margin-bottom: 45px !important;
}

.ml-45,
.mx-45 {
  margin-left: 45px !important;
}

.m-50 {
  margin: 50px !important;
}

.mt-50,
.my-50 {
  margin-top: 50px !important;
}

.mr-50,
.mx-50 {
  margin-right: 50px !important;
}

.mb-50,
.my-50 {
  margin-bottom: 50px !important;
}

.ml-50,
.mx-50 {
  margin-left: 50px !important;
}

.m-80 {
  margin: 80px !important;
}

.mt-80,
.my-80 {
  margin-top: 80px !important;
}

.mr-80,
.mx-80 {
  margin-right: 80px !important;
}

.mb-80,
.my-80 {
  margin-bottom: 80px !important;
}

.ml-80,
.mx-80 {
  margin-left: 80px !important;
}

.p-0 {
  padding: 0 !important;
}

.pt-0,
.py-0 {
  padding-top: 0 !important;
}

.pr-0,
.px-0 {
  padding-right: 0 !important;
}

.pb-0,
.py-0 {
  padding-bottom: 0 !important;
}

.pl-0,
.px-0 {
  padding-left: 0 !important;
}

.p-1 {
  padding: 5px !important;
}

.pt-1,
.py-1 {
  padding-top: 5px !important;
}

.pr-1,
.px-1 {
  padding-right: 5px !important;
}

.pb-1,
.py-1 {
  padding-bottom: 5px !important;
}

.pl-1,
.px-1 {
  padding-left: 5px !important;
}

.p-2 {
  padding: 10px !important;
}

.pt-2,
.py-2 {
  padding-top: 10px !important;
}

.pr-2,
.px-2 {
  padding-right: 10px !important;
}

.pb-2,
.py-2 {
  padding-bottom: 10px !important;
}

.pl-2,
.px-2 {
  padding-left: 10px !important;
}

.p-3 {
  padding: 20px !important;
}

.pt-3,
.py-3 {
  padding-top: 20px !important;
}

.pr-3,
.px-3 {
  padding-right: 20px !important;
}

.pb-3,
.py-3 {
  padding-bottom: 20px !important;
}

.pl-3,
.px-3 {
  padding-left: 20px !important;
}

.p-4 {
  padding: 30px !important;
}

.pt-4,
.py-4 {
  padding-top: 30px !important;
}

.pr-4,
.px-4 {
  padding-right: 30px !important;
}

.pb-4,
.py-4 {
  padding-bottom: 30px !important;
}

.pl-4,
.px-4 {
  padding-left: 30px !important;
}

.p-5 {
  padding: 5px !important;
}

.pt-5,
.py-5 {
  padding-top: 5px !important;
}

.pr-5,
.px-5 {
  padding-right: 5px !important;
}

.pb-5,
.py-5 {
  padding-bottom: 5px !important;
}

.pl-5,
.px-5 {
  padding-left: 5px !important;
}

.p-10 {
  padding: 10px !important;
}

.pt-10,
.py-10 {
  padding-top: 10px !important;
}

.pr-10,
.px-10 {
  padding-right: 10px !important;
}

.pb-10,
.py-10 {
  padding-bottom: 10px !important;
}

.pl-10,
.px-10 {
  padding-left: 10px !important;
}

.p-15 {
  padding: 15px !important;
}

.pt-15,
.py-15 {
  padding-top: 15px !important;
}

.pr-15,
.px-15 {
  padding-right: 15px !important;
}

.pb-15,
.py-15 {
  padding-bottom: 15px !important;
}

.pl-15,
.px-15 {
  padding-left: 15px !important;
}

.p-20 {
  padding: 20px !important;
}

.pt-20,
.py-20 {
  padding-top: 20px !important;
}

.pr-20,
.px-20 {
  padding-right: 20px !important;
}

.pb-20,
.py-20 {
  padding-bottom: 20px !important;
}

.pl-20,
.px-20 {
  padding-left: 20px !important;
}

.p-25 {
  padding: 25px !important;
}

.pt-25,
.py-25 {
  padding-top: 25px !important;
}

.pr-25,
.px-25 {
  padding-right: 25px !important;
}

.pb-25,
.py-25 {
  padding-bottom: 25px !important;
}

.pl-25,
.px-25 {
  padding-left: 25px !important;
}

.p-30 {
  padding: 30px !important;
}

.pt-30,
.py-30 {
  padding-top: 30px !important;
}

.pr-30,
.px-30 {
  padding-right: 30px !important;
}

.pb-30,
.py-30 {
  padding-bottom: 30px !important;
}

.pl-30,
.px-30 {
  padding-left: 30px !important;
}

.p-35 {
  padding: 35px !important;
}

.pt-35,
.py-35 {
  padding-top: 35px !important;
}

.pr-35,
.px-35 {
  padding-right: 35px !important;
}

.pb-35,
.py-35 {
  padding-bottom: 35px !important;
}

.pl-35,
.px-35 {
  padding-left: 35px !important;
}

.p-40 {
  padding: 40px !important;
}

.pt-40,
.py-40 {
  padding-top: 40px !important;
}

.pr-40,
.px-40 {
  padding-right: 40px !important;
}

.pb-40,
.py-40 {
  padding-bottom: 40px !important;
}

.pl-40,
.px-40 {
  padding-left: 40px !important;
}

.p-45 {
  padding: 45px !important;
}

.pt-45,
.py-45 {
  padding-top: 45px !important;
}

.pr-45,
.px-45 {
  padding-right: 45px !important;
}

.pb-45,
.py-45 {
  padding-bottom: 45px !important;
}

.pl-45,
.px-45 {
  padding-left: 45px !important;
}

.p-50 {
  padding: 50px !important;
}

.pt-50,
.py-50 {
  padding-top: 50px !important;
}

.pr-50,
.px-50 {
  padding-right: 50px !important;
}

.pb-50,
.py-50 {
  padding-bottom: 50px !important;
}

.pl-50,
.px-50 {
  padding-left: 50px !important;
}

.p-80 {
  padding: 80px !important;
}

.pt-80,
.py-80 {
  padding-top: 80px !important;
}

.pr-80,
.px-80 {
  padding-right: 80px !important;
}

.pb-80,
.py-80 {
  padding-bottom: 80px !important;
}

.pl-80,
.px-80 {
  padding-left: 80px !important;
}

.m-n1 {
  margin: -5px !important;
}

.mt-n1,
.my-n1 {
  margin-top: -5px !important;
}

.mr-n1,
.mx-n1 {
  margin-right: -5px !important;
}

.mb-n1,
.my-n1 {
  margin-bottom: -5px !important;
}

.ml-n1,
.mx-n1 {
  margin-left: -5px !important;
}

.m-n2 {
  margin: -10px !important;
}

.mt-n2,
.my-n2 {
  margin-top: -10px !important;
}

.mr-n2,
.mx-n2 {
  margin-right: -10px !important;
}

.mb-n2,
.my-n2 {
  margin-bottom: -10px !important;
}

.ml-n2,
.mx-n2 {
  margin-left: -10px !important;
}

.m-n3 {
  margin: -20px !important;
}

.mt-n3,
.my-n3 {
  margin-top: -20px !important;
}

.mr-n3,
.mx-n3 {
  margin-right: -20px !important;
}

.mb-n3,
.my-n3 {
  margin-bottom: -20px !important;
}

.ml-n3,
.mx-n3 {
  margin-left: -20px !important;
}

.m-n4 {
  margin: -30px !important;
}

.mt-n4,
.my-n4 {
  margin-top: -30px !important;
}

.mr-n4,
.mx-n4 {
  margin-right: -30px !important;
}

.mb-n4,
.my-n4 {
  margin-bottom: -30px !important;
}

.ml-n4,
.mx-n4 {
  margin-left: -30px !important;
}

.m-n5 {
  margin: -5px !important;
}

.mt-n5,
.my-n5 {
  margin-top: -5px !important;
}

.mr-n5,
.mx-n5 {
  margin-right: -5px !important;
}

.mb-n5,
.my-n5 {
  margin-bottom: -5px !important;
}

.ml-n5,
.mx-n5 {
  margin-left: -5px !important;
}

.m-n10 {
  margin: -10px !important;
}

.mt-n10,
.my-n10 {
  margin-top: -10px !important;
}

.mr-n10,
.mx-n10 {
  margin-right: -10px !important;
}

.mb-n10,
.my-n10 {
  margin-bottom: -10px !important;
}

.ml-n10,
.mx-n10 {
  margin-left: -10px !important;
}

.m-n15 {
  margin: -15px !important;
}

.mt-n15,
.my-n15 {
  margin-top: -15px !important;
}

.mr-n15,
.mx-n15 {
  margin-right: -15px !important;
}

.mb-n15,
.my-n15 {
  margin-bottom: -15px !important;
}

.ml-n15,
.mx-n15 {
  margin-left: -15px !important;
}

.m-n20 {
  margin: -20px !important;
}

.mt-n20,
.my-n20 {
  margin-top: -20px !important;
}

.mr-n20,
.mx-n20 {
  margin-right: -20px !important;
}

.mb-n20,
.my-n20 {
  margin-bottom: -20px !important;
}

.ml-n20,
.mx-n20 {
  margin-left: -20px !important;
}

.m-n25 {
  margin: -25px !important;
}

.mt-n25,
.my-n25 {
  margin-top: -25px !important;
}

.mr-n25,
.mx-n25 {
  margin-right: -25px !important;
}

.mb-n25,
.my-n25 {
  margin-bottom: -25px !important;
}

.ml-n25,
.mx-n25 {
  margin-left: -25px !important;
}

.m-n30 {
  margin: -30px !important;
}

.mt-n30,
.my-n30 {
  margin-top: -30px !important;
}

.mr-n30,
.mx-n30 {
  margin-right: -30px !important;
}

.mb-n30,
.my-n30 {
  margin-bottom: -30px !important;
}

.ml-n30,
.mx-n30 {
  margin-left: -30px !important;
}

.m-n35 {
  margin: -35px !important;
}

.mt-n35,
.my-n35 {
  margin-top: -35px !important;
}

.mr-n35,
.mx-n35 {
  margin-right: -35px !important;
}

.mb-n35,
.my-n35 {
  margin-bottom: -35px !important;
}

.ml-n35,
.mx-n35 {
  margin-left: -35px !important;
}

.m-n40 {
  margin: -40px !important;
}

.mt-n40,
.my-n40 {
  margin-top: -40px !important;
}

.mr-n40,
.mx-n40 {
  margin-right: -40px !important;
}

.mb-n40,
.my-n40 {
  margin-bottom: -40px !important;
}

.ml-n40,
.mx-n40 {
  margin-left: -40px !important;
}

.m-n45 {
  margin: -45px !important;
}

.mt-n45,
.my-n45 {
  margin-top: -45px !important;
}

.mr-n45,
.mx-n45 {
  margin-right: -45px !important;
}

.mb-n45,
.my-n45 {
  margin-bottom: -45px !important;
}

.ml-n45,
.mx-n45 {
  margin-left: -45px !important;
}

.m-n50 {
  margin: -50px !important;
}

.mt-n50,
.my-n50 {
  margin-top: -50px !important;
}

.mr-n50,
.mx-n50 {
  margin-right: -50px !important;
}

.mb-n50,
.my-n50 {
  margin-bottom: -50px !important;
}

.ml-n50,
.mx-n50 {
  margin-left: -50px !important;
}

.m-n80 {
  margin: -80px !important;
}

.mt-n80,
.my-n80 {
  margin-top: -80px !important;
}

.mr-n80,
.mx-n80 {
  margin-right: -80px !important;
}

.mb-n80,
.my-n80 {
  margin-bottom: -80px !important;
}

.ml-n80,
.mx-n80 {
  margin-left: -80px !important;
}

.m-auto {
  margin: auto !important;
}

.mt-auto,
.my-auto {
  margin-top: auto !important;
}

.mr-auto,
.mx-auto {
  margin-right: auto !important;
}

.mb-auto,
.my-auto {
  margin-bottom: auto !important;
}

.ml-auto,
.mx-auto {
  margin-left: auto !important;
}

@media (min-width: 576px) {
  .m-sm-0 {
    margin: 0 !important;
  }
  .mt-sm-0,
  .my-sm-0 {
    margin-top: 0 !important;
  }
  .mr-sm-0,
  .mx-sm-0 {
    margin-right: 0 !important;
  }
  .mb-sm-0,
  .my-sm-0 {
    margin-bottom: 0 !important;
  }
  .ml-sm-0,
  .mx-sm-0 {
    margin-left: 0 !important;
  }
  .m-sm-1 {
    margin: 5px !important;
  }
  .mt-sm-1,
  .my-sm-1 {
    margin-top: 5px !important;
  }
  .mr-sm-1,
  .mx-sm-1 {
    margin-right: 5px !important;
  }
  .mb-sm-1,
  .my-sm-1 {
    margin-bottom: 5px !important;
  }
  .ml-sm-1,
  .mx-sm-1 {
    margin-left: 5px !important;
  }
  .m-sm-2 {
    margin: 10px !important;
  }
  .mt-sm-2,
  .my-sm-2 {
    margin-top: 10px !important;
  }
  .mr-sm-2,
  .mx-sm-2 {
    margin-right: 10px !important;
  }
  .mb-sm-2,
  .my-sm-2 {
    margin-bottom: 10px !important;
  }
  .ml-sm-2,
  .mx-sm-2 {
    margin-left: 10px !important;
  }
  .m-sm-3 {
    margin: 20px !important;
  }
  .mt-sm-3,
  .my-sm-3 {
    margin-top: 20px !important;
  }
  .mr-sm-3,
  .mx-sm-3 {
    margin-right: 20px !important;
  }
  .mb-sm-3,
  .my-sm-3 {
    margin-bottom: 20px !important;
  }
  .ml-sm-3,
  .mx-sm-3 {
    margin-left: 20px !important;
  }
  .m-sm-4 {
    margin: 30px !important;
  }
  .mt-sm-4,
  .my-sm-4 {
    margin-top: 30px !important;
  }
  .mr-sm-4,
  .mx-sm-4 {
    margin-right: 30px !important;
  }
  .mb-sm-4,
  .my-sm-4 {
    margin-bottom: 30px !important;
  }
  .ml-sm-4,
  .mx-sm-4 {
    margin-left: 30px !important;
  }
  .m-sm-5 {
    margin: 5px !important;
  }
  .mt-sm-5,
  .my-sm-5 {
    margin-top: 5px !important;
  }
  .mr-sm-5,
  .mx-sm-5 {
    margin-right: 5px !important;
  }
  .mb-sm-5,
  .my-sm-5 {
    margin-bottom: 5px !important;
  }
  .ml-sm-5,
  .mx-sm-5 {
    margin-left: 5px !important;
  }
  .m-sm-10 {
    margin: 10px !important;
  }
  .mt-sm-10,
  .my-sm-10 {
    margin-top: 10px !important;
  }
  .mr-sm-10,
  .mx-sm-10 {
    margin-right: 10px !important;
  }
  .mb-sm-10,
  .my-sm-10 {
    margin-bottom: 10px !important;
  }
  .ml-sm-10,
  .mx-sm-10 {
    margin-left: 10px !important;
  }
  .m-sm-15 {
    margin: 15px !important;
  }
  .mt-sm-15,
  .my-sm-15 {
    margin-top: 15px !important;
  }
  .mr-sm-15,
  .mx-sm-15 {
    margin-right: 15px !important;
  }
  .mb-sm-15,
  .my-sm-15 {
    margin-bottom: 15px !important;
  }
  .ml-sm-15,
  .mx-sm-15 {
    margin-left: 15px !important;
  }
  .m-sm-20 {
    margin: 20px !important;
  }
  .mt-sm-20,
  .my-sm-20 {
    margin-top: 20px !important;
  }
  .mr-sm-20,
  .mx-sm-20 {
    margin-right: 20px !important;
  }
  .mb-sm-20,
  .my-sm-20 {
    margin-bottom: 20px !important;
  }
  .ml-sm-20,
  .mx-sm-20 {
    margin-left: 20px !important;
  }
  .m-sm-25 {
    margin: 25px !important;
  }
  .mt-sm-25,
  .my-sm-25 {
    margin-top: 25px !important;
  }
  .mr-sm-25,
  .mx-sm-25 {
    margin-right: 25px !important;
  }
  .mb-sm-25,
  .my-sm-25 {
    margin-bottom: 25px !important;
  }
  .ml-sm-25,
  .mx-sm-25 {
    margin-left: 25px !important;
  }
  .m-sm-30 {
    margin: 30px !important;
  }
  .mt-sm-30,
  .my-sm-30 {
    margin-top: 30px !important;
  }
  .mr-sm-30,
  .mx-sm-30 {
    margin-right: 30px !important;
  }
  .mb-sm-30,
  .my-sm-30 {
    margin-bottom: 30px !important;
  }
  .ml-sm-30,
  .mx-sm-30 {
    margin-left: 30px !important;
  }
  .m-sm-35 {
    margin: 35px !important;
  }
  .mt-sm-35,
  .my-sm-35 {
    margin-top: 35px !important;
  }
  .mr-sm-35,
  .mx-sm-35 {
    margin-right: 35px !important;
  }
  .mb-sm-35,
  .my-sm-35 {
    margin-bottom: 35px !important;
  }
  .ml-sm-35,
  .mx-sm-35 {
    margin-left: 35px !important;
  }
  .m-sm-40 {
    margin: 40px !important;
  }
  .mt-sm-40,
  .my-sm-40 {
    margin-top: 40px !important;
  }
  .mr-sm-40,
  .mx-sm-40 {
    margin-right: 40px !important;
  }
  .mb-sm-40,
  .my-sm-40 {
    margin-bottom: 40px !important;
  }
  .ml-sm-40,
  .mx-sm-40 {
    margin-left: 40px !important;
  }
  .m-sm-45 {
    margin: 45px !important;
  }
  .mt-sm-45,
  .my-sm-45 {
    margin-top: 45px !important;
  }
  .mr-sm-45,
  .mx-sm-45 {
    margin-right: 45px !important;
  }
  .mb-sm-45,
  .my-sm-45 {
    margin-bottom: 45px !important;
  }
  .ml-sm-45,
  .mx-sm-45 {
    margin-left: 45px !important;
  }
  .m-sm-50 {
    margin: 50px !important;
  }
  .mt-sm-50,
  .my-sm-50 {
    margin-top: 50px !important;
  }
  .mr-sm-50,
  .mx-sm-50 {
    margin-right: 50px !important;
  }
  .mb-sm-50,
  .my-sm-50 {
    margin-bottom: 50px !important;
  }
  .ml-sm-50,
  .mx-sm-50 {
    margin-left: 50px !important;
  }
  .m-sm-80 {
    margin: 80px !important;
  }
  .mt-sm-80,
  .my-sm-80 {
    margin-top: 80px !important;
  }
  .mr-sm-80,
  .mx-sm-80 {
    margin-right: 80px !important;
  }
  .mb-sm-80,
  .my-sm-80 {
    margin-bottom: 80px !important;
  }
  .ml-sm-80,
  .mx-sm-80 {
    margin-left: 80px !important;
  }
  .p-sm-0 {
    padding: 0 !important;
  }
  .pt-sm-0,
  .py-sm-0 {
    padding-top: 0 !important;
  }
  .pr-sm-0,
  .px-sm-0 {
    padding-right: 0 !important;
  }
  .pb-sm-0,
  .py-sm-0 {
    padding-bottom: 0 !important;
  }
  .pl-sm-0,
  .px-sm-0 {
    padding-left: 0 !important;
  }
  .p-sm-1 {
    padding: 5px !important;
  }
  .pt-sm-1,
  .py-sm-1 {
    padding-top: 5px !important;
  }
  .pr-sm-1,
  .px-sm-1 {
    padding-right: 5px !important;
  }
  .pb-sm-1,
  .py-sm-1 {
    padding-bottom: 5px !important;
  }
  .pl-sm-1,
  .px-sm-1 {
    padding-left: 5px !important;
  }
  .p-sm-2 {
    padding: 10px !important;
  }
  .pt-sm-2,
  .py-sm-2 {
    padding-top: 10px !important;
  }
  .pr-sm-2,
  .px-sm-2 {
    padding-right: 10px !important;
  }
  .pb-sm-2,
  .py-sm-2 {
    padding-bottom: 10px !important;
  }
  .pl-sm-2,
  .px-sm-2 {
    padding-left: 10px !important;
  }
  .p-sm-3 {
    padding: 20px !important;
  }
  .pt-sm-3,
  .py-sm-3 {
    padding-top: 20px !important;
  }
  .pr-sm-3,
  .px-sm-3 {
    padding-right: 20px !important;
  }
  .pb-sm-3,
  .py-sm-3 {
    padding-bottom: 20px !important;
  }
  .pl-sm-3,
  .px-sm-3 {
    padding-left: 20px !important;
  }
  .p-sm-4 {
    padding: 30px !important;
  }
  .pt-sm-4,
  .py-sm-4 {
    padding-top: 30px !important;
  }
  .pr-sm-4,
  .px-sm-4 {
    padding-right: 30px !important;
  }
  .pb-sm-4,
  .py-sm-4 {
    padding-bottom: 30px !important;
  }
  .pl-sm-4,
  .px-sm-4 {
    padding-left: 30px !important;
  }
  .p-sm-5 {
    padding: 5px !important;
  }
  .pt-sm-5,
  .py-sm-5 {
    padding-top: 5px !important;
  }
  .pr-sm-5,
  .px-sm-5 {
    padding-right: 5px !important;
  }
  .pb-sm-5,
  .py-sm-5 {
    padding-bottom: 5px !important;
  }
  .pl-sm-5,
  .px-sm-5 {
    padding-left: 5px !important;
  }
  .p-sm-10 {
    padding: 10px !important;
  }
  .pt-sm-10,
  .py-sm-10 {
    padding-top: 10px !important;
  }
  .pr-sm-10,
  .px-sm-10 {
    padding-right: 10px !important;
  }
  .pb-sm-10,
  .py-sm-10 {
    padding-bottom: 10px !important;
  }
  .pl-sm-10,
  .px-sm-10 {
    padding-left: 10px !important;
  }
  .p-sm-15 {
    padding: 15px !important;
  }
  .pt-sm-15,
  .py-sm-15 {
    padding-top: 15px !important;
  }
  .pr-sm-15,
  .px-sm-15 {
    padding-right: 15px !important;
  }
  .pb-sm-15,
  .py-sm-15 {
    padding-bottom: 15px !important;
  }
  .pl-sm-15,
  .px-sm-15 {
    padding-left: 15px !important;
  }
  .p-sm-20 {
    padding: 20px !important;
  }
  .pt-sm-20,
  .py-sm-20 {
    padding-top: 20px !important;
  }
  .pr-sm-20,
  .px-sm-20 {
    padding-right: 20px !important;
  }
  .pb-sm-20,
  .py-sm-20 {
    padding-bottom: 20px !important;
  }
  .pl-sm-20,
  .px-sm-20 {
    padding-left: 20px !important;
  }
  .p-sm-25 {
    padding: 25px !important;
  }
  .pt-sm-25,
  .py-sm-25 {
    padding-top: 25px !important;
  }
  .pr-sm-25,
  .px-sm-25 {
    padding-right: 25px !important;
  }
  .pb-sm-25,
  .py-sm-25 {
    padding-bottom: 25px !important;
  }
  .pl-sm-25,
  .px-sm-25 {
    padding-left: 25px !important;
  }
  .p-sm-30 {
    padding: 30px !important;
  }
  .pt-sm-30,
  .py-sm-30 {
    padding-top: 30px !important;
  }
  .pr-sm-30,
  .px-sm-30 {
    padding-right: 30px !important;
  }
  .pb-sm-30,
  .py-sm-30 {
    padding-bottom: 30px !important;
  }
  .pl-sm-30,
  .px-sm-30 {
    padding-left: 30px !important;
  }
  .p-sm-35 {
    padding: 35px !important;
  }
  .pt-sm-35,
  .py-sm-35 {
    padding-top: 35px !important;
  }
  .pr-sm-35,
  .px-sm-35 {
    padding-right: 35px !important;
  }
  .pb-sm-35,
  .py-sm-35 {
    padding-bottom: 35px !important;
  }
  .pl-sm-35,
  .px-sm-35 {
    padding-left: 35px !important;
  }
  .p-sm-40 {
    padding: 40px !important;
  }
  .pt-sm-40,
  .py-sm-40 {
    padding-top: 40px !important;
  }
  .pr-sm-40,
  .px-sm-40 {
    padding-right: 40px !important;
  }
  .pb-sm-40,
  .py-sm-40 {
    padding-bottom: 40px !important;
  }
  .pl-sm-40,
  .px-sm-40 {
    padding-left: 40px !important;
  }
  .p-sm-45 {
    padding: 45px !important;
  }
  .pt-sm-45,
  .py-sm-45 {
    padding-top: 45px !important;
  }
  .pr-sm-45,
  .px-sm-45 {
    padding-right: 45px !important;
  }
  .pb-sm-45,
  .py-sm-45 {
    padding-bottom: 45px !important;
  }
  .pl-sm-45,
  .px-sm-45 {
    padding-left: 45px !important;
  }
  .p-sm-50 {
    padding: 50px !important;
  }
  .pt-sm-50,
  .py-sm-50 {
    padding-top: 50px !important;
  }
  .pr-sm-50,
  .px-sm-50 {
    padding-right: 50px !important;
  }
  .pb-sm-50,
  .py-sm-50 {
    padding-bottom: 50px !important;
  }
  .pl-sm-50,
  .px-sm-50 {
    padding-left: 50px !important;
  }
  .p-sm-80 {
    padding: 80px !important;
  }
  .pt-sm-80,
  .py-sm-80 {
    padding-top: 80px !important;
  }
  .pr-sm-80,
  .px-sm-80 {
    padding-right: 80px !important;
  }
  .pb-sm-80,
  .py-sm-80 {
    padding-bottom: 80px !important;
  }
  .pl-sm-80,
  .px-sm-80 {
    padding-left: 80px !important;
  }
  .m-sm-n1 {
    margin: -5px !important;
  }
  .mt-sm-n1,
  .my-sm-n1 {
    margin-top: -5px !important;
  }
  .mr-sm-n1,
  .mx-sm-n1 {
    margin-right: -5px !important;
  }
  .mb-sm-n1,
  .my-sm-n1 {
    margin-bottom: -5px !important;
  }
  .ml-sm-n1,
  .mx-sm-n1 {
    margin-left: -5px !important;
  }
  .m-sm-n2 {
    margin: -10px !important;
  }
  .mt-sm-n2,
  .my-sm-n2 {
    margin-top: -10px !important;
  }
  .mr-sm-n2,
  .mx-sm-n2 {
    margin-right: -10px !important;
  }
  .mb-sm-n2,
  .my-sm-n2 {
    margin-bottom: -10px !important;
  }
  .ml-sm-n2,
  .mx-sm-n2 {
    margin-left: -10px !important;
  }
  .m-sm-n3 {
    margin: -20px !important;
  }
  .mt-sm-n3,
  .my-sm-n3 {
    margin-top: -20px !important;
  }
  .mr-sm-n3,
  .mx-sm-n3 {
    margin-right: -20px !important;
  }
  .mb-sm-n3,
  .my-sm-n3 {
    margin-bottom: -20px !important;
  }
  .ml-sm-n3,
  .mx-sm-n3 {
    margin-left: -20px !important;
  }
  .m-sm-n4 {
    margin: -30px !important;
  }
  .mt-sm-n4,
  .my-sm-n4 {
    margin-top: -30px !important;
  }
  .mr-sm-n4,
  .mx-sm-n4 {
    margin-right: -30px !important;
  }
  .mb-sm-n4,
  .my-sm-n4 {
    margin-bottom: -30px !important;
  }
  .ml-sm-n4,
  .mx-sm-n4 {
    margin-left: -30px !important;
  }
  .m-sm-n5 {
    margin: -5px !important;
  }
  .mt-sm-n5,
  .my-sm-n5 {
    margin-top: -5px !important;
  }
  .mr-sm-n5,
  .mx-sm-n5 {
    margin-right: -5px !important;
  }
  .mb-sm-n5,
  .my-sm-n5 {
    margin-bottom: -5px !important;
  }
  .ml-sm-n5,
  .mx-sm-n5 {
    margin-left: -5px !important;
  }
  .m-sm-n10 {
    margin: -10px !important;
  }
  .mt-sm-n10,
  .my-sm-n10 {
    margin-top: -10px !important;
  }
  .mr-sm-n10,
  .mx-sm-n10 {
    margin-right: -10px !important;
  }
  .mb-sm-n10,
  .my-sm-n10 {
    margin-bottom: -10px !important;
  }
  .ml-sm-n10,
  .mx-sm-n10 {
    margin-left: -10px !important;
  }
  .m-sm-n15 {
    margin: -15px !important;
  }
  .mt-sm-n15,
  .my-sm-n15 {
    margin-top: -15px !important;
  }
  .mr-sm-n15,
  .mx-sm-n15 {
    margin-right: -15px !important;
  }
  .mb-sm-n15,
  .my-sm-n15 {
    margin-bottom: -15px !important;
  }
  .ml-sm-n15,
  .mx-sm-n15 {
    margin-left: -15px !important;
  }
  .m-sm-n20 {
    margin: -20px !important;
  }
  .mt-sm-n20,
  .my-sm-n20 {
    margin-top: -20px !important;
  }
  .mr-sm-n20,
  .mx-sm-n20 {
    margin-right: -20px !important;
  }
  .mb-sm-n20,
  .my-sm-n20 {
    margin-bottom: -20px !important;
  }
  .ml-sm-n20,
  .mx-sm-n20 {
    margin-left: -20px !important;
  }
  .m-sm-n25 {
    margin: -25px !important;
  }
  .mt-sm-n25,
  .my-sm-n25 {
    margin-top: -25px !important;
  }
  .mr-sm-n25,
  .mx-sm-n25 {
    margin-right: -25px !important;
  }
  .mb-sm-n25,
  .my-sm-n25 {
    margin-bottom: -25px !important;
  }
  .ml-sm-n25,
  .mx-sm-n25 {
    margin-left: -25px !important;
  }
  .m-sm-n30 {
    margin: -30px !important;
  }
  .mt-sm-n30,
  .my-sm-n30 {
    margin-top: -30px !important;
  }
  .mr-sm-n30,
  .mx-sm-n30 {
    margin-right: -30px !important;
  }
  .mb-sm-n30,
  .my-sm-n30 {
    margin-bottom: -30px !important;
  }
  .ml-sm-n30,
  .mx-sm-n30 {
    margin-left: -30px !important;
  }
  .m-sm-n35 {
    margin: -35px !important;
  }
  .mt-sm-n35,
  .my-sm-n35 {
    margin-top: -35px !important;
  }
  .mr-sm-n35,
  .mx-sm-n35 {
    margin-right: -35px !important;
  }
  .mb-sm-n35,
  .my-sm-n35 {
    margin-bottom: -35px !important;
  }
  .ml-sm-n35,
  .mx-sm-n35 {
    margin-left: -35px !important;
  }
  .m-sm-n40 {
    margin: -40px !important;
  }
  .mt-sm-n40,
  .my-sm-n40 {
    margin-top: -40px !important;
  }
  .mr-sm-n40,
  .mx-sm-n40 {
    margin-right: -40px !important;
  }
  .mb-sm-n40,
  .my-sm-n40 {
    margin-bottom: -40px !important;
  }
  .ml-sm-n40,
  .mx-sm-n40 {
    margin-left: -40px !important;
  }
  .m-sm-n45 {
    margin: -45px !important;
  }
  .mt-sm-n45,
  .my-sm-n45 {
    margin-top: -45px !important;
  }
  .mr-sm-n45,
  .mx-sm-n45 {
    margin-right: -45px !important;
  }
  .mb-sm-n45,
  .my-sm-n45 {
    margin-bottom: -45px !important;
  }
  .ml-sm-n45,
  .mx-sm-n45 {
    margin-left: -45px !important;
  }
  .m-sm-n50 {
    margin: -50px !important;
  }
  .mt-sm-n50,
  .my-sm-n50 {
    margin-top: -50px !important;
  }
  .mr-sm-n50,
  .mx-sm-n50 {
    margin-right: -50px !important;
  }
  .mb-sm-n50,
  .my-sm-n50 {
    margin-bottom: -50px !important;
  }
  .ml-sm-n50,
  .mx-sm-n50 {
    margin-left: -50px !important;
  }
  .m-sm-n80 {
    margin: -80px !important;
  }
  .mt-sm-n80,
  .my-sm-n80 {
    margin-top: -80px !important;
  }
  .mr-sm-n80,
  .mx-sm-n80 {
    margin-right: -80px !important;
  }
  .mb-sm-n80,
  .my-sm-n80 {
    margin-bottom: -80px !important;
  }
  .ml-sm-n80,
  .mx-sm-n80 {
    margin-left: -80px !important;
  }
  .m-sm-auto {
    margin: auto !important;
  }
  .mt-sm-auto,
  .my-sm-auto {
    margin-top: auto !important;
  }
  .mr-sm-auto,
  .mx-sm-auto {
    margin-right: auto !important;
  }
  .mb-sm-auto,
  .my-sm-auto {
    margin-bottom: auto !important;
  }
  .ml-sm-auto,
  .mx-sm-auto {
    margin-left: auto !important;
  }
}
@media (min-width: 768px) {
  .m-md-0 {
    margin: 0 !important;
  }
  .mt-md-0,
  .my-md-0 {
    margin-top: 0 !important;
  }
  .mr-md-0,
  .mx-md-0 {
    margin-right: 0 !important;
  }
  .mb-md-0,
  .my-md-0 {
    margin-bottom: 0 !important;
  }
  .ml-md-0,
  .mx-md-0 {
    margin-left: 0 !important;
  }
  .m-md-1 {
    margin: 5px !important;
  }
  .mt-md-1,
  .my-md-1 {
    margin-top: 5px !important;
  }
  .mr-md-1,
  .mx-md-1 {
    margin-right: 5px !important;
  }
  .mb-md-1,
  .my-md-1 {
    margin-bottom: 5px !important;
  }
  .ml-md-1,
  .mx-md-1 {
    margin-left: 5px !important;
  }
  .m-md-2 {
    margin: 10px !important;
  }
  .mt-md-2,
  .my-md-2 {
    margin-top: 10px !important;
  }
  .mr-md-2,
  .mx-md-2 {
    margin-right: 10px !important;
  }
  .mb-md-2,
  .my-md-2 {
    margin-bottom: 10px !important;
  }
  .ml-md-2,
  .mx-md-2 {
    margin-left: 10px !important;
  }
  .m-md-3 {
    margin: 20px !important;
  }
  .mt-md-3,
  .my-md-3 {
    margin-top: 20px !important;
  }
  .mr-md-3,
  .mx-md-3 {
    margin-right: 20px !important;
  }
  .mb-md-3,
  .my-md-3 {
    margin-bottom: 20px !important;
  }
  .ml-md-3,
  .mx-md-3 {
    margin-left: 20px !important;
  }
  .m-md-4 {
    margin: 30px !important;
  }
  .mt-md-4,
  .my-md-4 {
    margin-top: 30px !important;
  }
  .mr-md-4,
  .mx-md-4 {
    margin-right: 30px !important;
  }
  .mb-md-4,
  .my-md-4 {
    margin-bottom: 30px !important;
  }
  .ml-md-4,
  .mx-md-4 {
    margin-left: 30px !important;
  }
  .m-md-5 {
    margin: 5px !important;
  }
  .mt-md-5,
  .my-md-5 {
    margin-top: 5px !important;
  }
  .mr-md-5,
  .mx-md-5 {
    margin-right: 5px !important;
  }
  .mb-md-5,
  .my-md-5 {
    margin-bottom: 5px !important;
  }
  .ml-md-5,
  .mx-md-5 {
    margin-left: 5px !important;
  }
  .m-md-10 {
    margin: 10px !important;
  }
  .mt-md-10,
  .my-md-10 {
    margin-top: 10px !important;
  }
  .mr-md-10,
  .mx-md-10 {
    margin-right: 10px !important;
  }
  .mb-md-10,
  .my-md-10 {
    margin-bottom: 10px !important;
  }
  .ml-md-10,
  .mx-md-10 {
    margin-left: 10px !important;
  }
  .m-md-15 {
    margin: 15px !important;
  }
  .mt-md-15,
  .my-md-15 {
    margin-top: 15px !important;
  }
  .mr-md-15,
  .mx-md-15 {
    margin-right: 15px !important;
  }
  .mb-md-15,
  .my-md-15 {
    margin-bottom: 15px !important;
  }
  .ml-md-15,
  .mx-md-15 {
    margin-left: 15px !important;
  }
  .m-md-20 {
    margin: 20px !important;
  }
  .mt-md-20,
  .my-md-20 {
    margin-top: 20px !important;
  }
  .mr-md-20,
  .mx-md-20 {
    margin-right: 20px !important;
  }
  .mb-md-20,
  .my-md-20 {
    margin-bottom: 20px !important;
  }
  .ml-md-20,
  .mx-md-20 {
    margin-left: 20px !important;
  }
  .m-md-25 {
    margin: 25px !important;
  }
  .mt-md-25,
  .my-md-25 {
    margin-top: 25px !important;
  }
  .mr-md-25,
  .mx-md-25 {
    margin-right: 25px !important;
  }
  .mb-md-25,
  .my-md-25 {
    margin-bottom: 25px !important;
  }
  .ml-md-25,
  .mx-md-25 {
    margin-left: 25px !important;
  }
  .m-md-30 {
    margin: 30px !important;
  }
  .mt-md-30,
  .my-md-30 {
    margin-top: 30px !important;
  }
  .mr-md-30,
  .mx-md-30 {
    margin-right: 30px !important;
  }
  .mb-md-30,
  .my-md-30 {
    margin-bottom: 30px !important;
  }
  .ml-md-30,
  .mx-md-30 {
    margin-left: 30px !important;
  }
  .m-md-35 {
    margin: 35px !important;
  }
  .mt-md-35,
  .my-md-35 {
    margin-top: 35px !important;
  }
  .mr-md-35,
  .mx-md-35 {
    margin-right: 35px !important;
  }
  .mb-md-35,
  .my-md-35 {
    margin-bottom: 35px !important;
  }
  .ml-md-35,
  .mx-md-35 {
    margin-left: 35px !important;
  }
  .m-md-40 {
    margin: 40px !important;
  }
  .mt-md-40,
  .my-md-40 {
    margin-top: 40px !important;
  }
  .mr-md-40,
  .mx-md-40 {
    margin-right: 40px !important;
  }
  .mb-md-40,
  .my-md-40 {
    margin-bottom: 40px !important;
  }
  .ml-md-40,
  .mx-md-40 {
    margin-left: 40px !important;
  }
  .m-md-45 {
    margin: 45px !important;
  }
  .mt-md-45,
  .my-md-45 {
    margin-top: 45px !important;
  }
  .mr-md-45,
  .mx-md-45 {
    margin-right: 45px !important;
  }
  .mb-md-45,
  .my-md-45 {
    margin-bottom: 45px !important;
  }
  .ml-md-45,
  .mx-md-45 {
    margin-left: 45px !important;
  }
  .m-md-50 {
    margin: 50px !important;
  }
  .mt-md-50,
  .my-md-50 {
    margin-top: 50px !important;
  }
  .mr-md-50,
  .mx-md-50 {
    margin-right: 50px !important;
  }
  .mb-md-50,
  .my-md-50 {
    margin-bottom: 50px !important;
  }
  .ml-md-50,
  .mx-md-50 {
    margin-left: 50px !important;
  }
  .m-md-80 {
    margin: 80px !important;
  }
  .mt-md-80,
  .my-md-80 {
    margin-top: 80px !important;
  }
  .mr-md-80,
  .mx-md-80 {
    margin-right: 80px !important;
  }
  .mb-md-80,
  .my-md-80 {
    margin-bottom: 80px !important;
  }
  .ml-md-80,
  .mx-md-80 {
    margin-left: 80px !important;
  }
  .p-md-0 {
    padding: 0 !important;
  }
  .pt-md-0,
  .py-md-0 {
    padding-top: 0 !important;
  }
  .pr-md-0,
  .px-md-0 {
    padding-right: 0 !important;
  }
  .pb-md-0,
  .py-md-0 {
    padding-bottom: 0 !important;
  }
  .pl-md-0,
  .px-md-0 {
    padding-left: 0 !important;
  }
  .p-md-1 {
    padding: 5px !important;
  }
  .pt-md-1,
  .py-md-1 {
    padding-top: 5px !important;
  }
  .pr-md-1,
  .px-md-1 {
    padding-right: 5px !important;
  }
  .pb-md-1,
  .py-md-1 {
    padding-bottom: 5px !important;
  }
  .pl-md-1,
  .px-md-1 {
    padding-left: 5px !important;
  }
  .p-md-2 {
    padding: 10px !important;
  }
  .pt-md-2,
  .py-md-2 {
    padding-top: 10px !important;
  }
  .pr-md-2,
  .px-md-2 {
    padding-right: 10px !important;
  }
  .pb-md-2,
  .py-md-2 {
    padding-bottom: 10px !important;
  }
  .pl-md-2,
  .px-md-2 {
    padding-left: 10px !important;
  }
  .p-md-3 {
    padding: 20px !important;
  }
  .pt-md-3,
  .py-md-3 {
    padding-top: 20px !important;
  }
  .pr-md-3,
  .px-md-3 {
    padding-right: 20px !important;
  }
  .pb-md-3,
  .py-md-3 {
    padding-bottom: 20px !important;
  }
  .pl-md-3,
  .px-md-3 {
    padding-left: 20px !important;
  }
  .p-md-4 {
    padding: 30px !important;
  }
  .pt-md-4,
  .py-md-4 {
    padding-top: 30px !important;
  }
  .pr-md-4,
  .px-md-4 {
    padding-right: 30px !important;
  }
  .pb-md-4,
  .py-md-4 {
    padding-bottom: 30px !important;
  }
  .pl-md-4,
  .px-md-4 {
    padding-left: 30px !important;
  }
  .p-md-5 {
    padding: 5px !important;
  }
  .pt-md-5,
  .py-md-5 {
    padding-top: 5px !important;
  }
  .pr-md-5,
  .px-md-5 {
    padding-right: 5px !important;
  }
  .pb-md-5,
  .py-md-5 {
    padding-bottom: 5px !important;
  }
  .pl-md-5,
  .px-md-5 {
    padding-left: 5px !important;
  }
  .p-md-10 {
    padding: 10px !important;
  }
  .pt-md-10,
  .py-md-10 {
    padding-top: 10px !important;
  }
  .pr-md-10,
  .px-md-10 {
    padding-right: 10px !important;
  }
  .pb-md-10,
  .py-md-10 {
    padding-bottom: 10px !important;
  }
  .pl-md-10,
  .px-md-10 {
    padding-left: 10px !important;
  }
  .p-md-15 {
    padding: 15px !important;
  }
  .pt-md-15,
  .py-md-15 {
    padding-top: 15px !important;
  }
  .pr-md-15,
  .px-md-15 {
    padding-right: 15px !important;
  }
  .pb-md-15,
  .py-md-15 {
    padding-bottom: 15px !important;
  }
  .pl-md-15,
  .px-md-15 {
    padding-left: 15px !important;
  }
  .p-md-20 {
    padding: 20px !important;
  }
  .pt-md-20,
  .py-md-20 {
    padding-top: 20px !important;
  }
  .pr-md-20,
  .px-md-20 {
    padding-right: 20px !important;
  }
  .pb-md-20,
  .py-md-20 {
    padding-bottom: 20px !important;
  }
  .pl-md-20,
  .px-md-20 {
    padding-left: 20px !important;
  }
  .p-md-25 {
    padding: 25px !important;
  }
  .pt-md-25,
  .py-md-25 {
    padding-top: 25px !important;
  }
  .pr-md-25,
  .px-md-25 {
    padding-right: 25px !important;
  }
  .pb-md-25,
  .py-md-25 {
    padding-bottom: 25px !important;
  }
  .pl-md-25,
  .px-md-25 {
    padding-left: 25px !important;
  }
  .p-md-30 {
    padding: 30px !important;
  }
  .pt-md-30,
  .py-md-30 {
    padding-top: 30px !important;
  }
  .pr-md-30,
  .px-md-30 {
    padding-right: 30px !important;
  }
  .pb-md-30,
  .py-md-30 {
    padding-bottom: 30px !important;
  }
  .pl-md-30,
  .px-md-30 {
    padding-left: 30px !important;
  }
  .p-md-35 {
    padding: 35px !important;
  }
  .pt-md-35,
  .py-md-35 {
    padding-top: 35px !important;
  }
  .pr-md-35,
  .px-md-35 {
    padding-right: 35px !important;
  }
  .pb-md-35,
  .py-md-35 {
    padding-bottom: 35px !important;
  }
  .pl-md-35,
  .px-md-35 {
    padding-left: 35px !important;
  }
  .p-md-40 {
    padding: 40px !important;
  }
  .pt-md-40,
  .py-md-40 {
    padding-top: 40px !important;
  }
  .pr-md-40,
  .px-md-40 {
    padding-right: 40px !important;
  }
  .pb-md-40,
  .py-md-40 {
    padding-bottom: 40px !important;
  }
  .pl-md-40,
  .px-md-40 {
    padding-left: 40px !important;
  }
  .p-md-45 {
    padding: 45px !important;
  }
  .pt-md-45,
  .py-md-45 {
    padding-top: 45px !important;
  }
  .pr-md-45,
  .px-md-45 {
    padding-right: 45px !important;
  }
  .pb-md-45,
  .py-md-45 {
    padding-bottom: 45px !important;
  }
  .pl-md-45,
  .px-md-45 {
    padding-left: 45px !important;
  }
  .p-md-50 {
    padding: 50px !important;
  }
  .pt-md-50,
  .py-md-50 {
    padding-top: 50px !important;
  }
  .pr-md-50,
  .px-md-50 {
    padding-right: 50px !important;
  }
  .pb-md-50,
  .py-md-50 {
    padding-bottom: 50px !important;
  }
  .pl-md-50,
  .px-md-50 {
    padding-left: 50px !important;
  }
  .p-md-80 {
    padding: 80px !important;
  }
  .pt-md-80,
  .py-md-80 {
    padding-top: 80px !important;
  }
  .pr-md-80,
  .px-md-80 {
    padding-right: 80px !important;
  }
  .pb-md-80,
  .py-md-80 {
    padding-bottom: 80px !important;
  }
  .pl-md-80,
  .px-md-80 {
    padding-left: 80px !important;
  }
  .m-md-n1 {
    margin: -5px !important;
  }
  .mt-md-n1,
  .my-md-n1 {
    margin-top: -5px !important;
  }
  .mr-md-n1,
  .mx-md-n1 {
    margin-right: -5px !important;
  }
  .mb-md-n1,
  .my-md-n1 {
    margin-bottom: -5px !important;
  }
  .ml-md-n1,
  .mx-md-n1 {
    margin-left: -5px !important;
  }
  .m-md-n2 {
    margin: -10px !important;
  }
  .mt-md-n2,
  .my-md-n2 {
    margin-top: -10px !important;
  }
  .mr-md-n2,
  .mx-md-n2 {
    margin-right: -10px !important;
  }
  .mb-md-n2,
  .my-md-n2 {
    margin-bottom: -10px !important;
  }
  .ml-md-n2,
  .mx-md-n2 {
    margin-left: -10px !important;
  }
  .m-md-n3 {
    margin: -20px !important;
  }
  .mt-md-n3,
  .my-md-n3 {
    margin-top: -20px !important;
  }
  .mr-md-n3,
  .mx-md-n3 {
    margin-right: -20px !important;
  }
  .mb-md-n3,
  .my-md-n3 {
    margin-bottom: -20px !important;
  }
  .ml-md-n3,
  .mx-md-n3 {
    margin-left: -20px !important;
  }
  .m-md-n4 {
    margin: -30px !important;
  }
  .mt-md-n4,
  .my-md-n4 {
    margin-top: -30px !important;
  }
  .mr-md-n4,
  .mx-md-n4 {
    margin-right: -30px !important;
  }
  .mb-md-n4,
  .my-md-n4 {
    margin-bottom: -30px !important;
  }
  .ml-md-n4,
  .mx-md-n4 {
    margin-left: -30px !important;
  }
  .m-md-n5 {
    margin: -5px !important;
  }
  .mt-md-n5,
  .my-md-n5 {
    margin-top: -5px !important;
  }
  .mr-md-n5,
  .mx-md-n5 {
    margin-right: -5px !important;
  }
  .mb-md-n5,
  .my-md-n5 {
    margin-bottom: -5px !important;
  }
  .ml-md-n5,
  .mx-md-n5 {
    margin-left: -5px !important;
  }
  .m-md-n10 {
    margin: -10px !important;
  }
  .mt-md-n10,
  .my-md-n10 {
    margin-top: -10px !important;
  }
  .mr-md-n10,
  .mx-md-n10 {
    margin-right: -10px !important;
  }
  .mb-md-n10,
  .my-md-n10 {
    margin-bottom: -10px !important;
  }
  .ml-md-n10,
  .mx-md-n10 {
    margin-left: -10px !important;
  }
  .m-md-n15 {
    margin: -15px !important;
  }
  .mt-md-n15,
  .my-md-n15 {
    margin-top: -15px !important;
  }
  .mr-md-n15,
  .mx-md-n15 {
    margin-right: -15px !important;
  }
  .mb-md-n15,
  .my-md-n15 {
    margin-bottom: -15px !important;
  }
  .ml-md-n15,
  .mx-md-n15 {
    margin-left: -15px !important;
  }
  .m-md-n20 {
    margin: -20px !important;
  }
  .mt-md-n20,
  .my-md-n20 {
    margin-top: -20px !important;
  }
  .mr-md-n20,
  .mx-md-n20 {
    margin-right: -20px !important;
  }
  .mb-md-n20,
  .my-md-n20 {
    margin-bottom: -20px !important;
  }
  .ml-md-n20,
  .mx-md-n20 {
    margin-left: -20px !important;
  }
  .m-md-n25 {
    margin: -25px !important;
  }
  .mt-md-n25,
  .my-md-n25 {
    margin-top: -25px !important;
  }
  .mr-md-n25,
  .mx-md-n25 {
    margin-right: -25px !important;
  }
  .mb-md-n25,
  .my-md-n25 {
    margin-bottom: -25px !important;
  }
  .ml-md-n25,
  .mx-md-n25 {
    margin-left: -25px !important;
  }
  .m-md-n30 {
    margin: -30px !important;
  }
  .mt-md-n30,
  .my-md-n30 {
    margin-top: -30px !important;
  }
  .mr-md-n30,
  .mx-md-n30 {
    margin-right: -30px !important;
  }
  .mb-md-n30,
  .my-md-n30 {
    margin-bottom: -30px !important;
  }
  .ml-md-n30,
  .mx-md-n30 {
    margin-left: -30px !important;
  }
  .m-md-n35 {
    margin: -35px !important;
  }
  .mt-md-n35,
  .my-md-n35 {
    margin-top: -35px !important;
  }
  .mr-md-n35,
  .mx-md-n35 {
    margin-right: -35px !important;
  }
  .mb-md-n35,
  .my-md-n35 {
    margin-bottom: -35px !important;
  }
  .ml-md-n35,
  .mx-md-n35 {
    margin-left: -35px !important;
  }
  .m-md-n40 {
    margin: -40px !important;
  }
  .mt-md-n40,
  .my-md-n40 {
    margin-top: -40px !important;
  }
  .mr-md-n40,
  .mx-md-n40 {
    margin-right: -40px !important;
  }
  .mb-md-n40,
  .my-md-n40 {
    margin-bottom: -40px !important;
  }
  .ml-md-n40,
  .mx-md-n40 {
    margin-left: -40px !important;
  }
  .m-md-n45 {
    margin: -45px !important;
  }
  .mt-md-n45,
  .my-md-n45 {
    margin-top: -45px !important;
  }
  .mr-md-n45,
  .mx-md-n45 {
    margin-right: -45px !important;
  }
  .mb-md-n45,
  .my-md-n45 {
    margin-bottom: -45px !important;
  }
  .ml-md-n45,
  .mx-md-n45 {
    margin-left: -45px !important;
  }
  .m-md-n50 {
    margin: -50px !important;
  }
  .mt-md-n50,
  .my-md-n50 {
    margin-top: -50px !important;
  }
  .mr-md-n50,
  .mx-md-n50 {
    margin-right: -50px !important;
  }
  .mb-md-n50,
  .my-md-n50 {
    margin-bottom: -50px !important;
  }
  .ml-md-n50,
  .mx-md-n50 {
    margin-left: -50px !important;
  }
  .m-md-n80 {
    margin: -80px !important;
  }
  .mt-md-n80,
  .my-md-n80 {
    margin-top: -80px !important;
  }
  .mr-md-n80,
  .mx-md-n80 {
    margin-right: -80px !important;
  }
  .mb-md-n80,
  .my-md-n80 {
    margin-bottom: -80px !important;
  }
  .ml-md-n80,
  .mx-md-n80 {
    margin-left: -80px !important;
  }
  .m-md-auto {
    margin: auto !important;
  }
  .mt-md-auto,
  .my-md-auto {
    margin-top: auto !important;
  }
  .mr-md-auto,
  .mx-md-auto {
    margin-right: auto !important;
  }
  .mb-md-auto,
  .my-md-auto {
    margin-bottom: auto !important;
  }
  .ml-md-auto,
  .mx-md-auto {
    margin-left: auto !important;
  }
}
@media (min-width: 992px) {
  .m-lg-0 {
    margin: 0 !important;
  }
  .mt-lg-0,
  .my-lg-0 {
    margin-top: 0px !important;
  }
  
  .mt-lg-90,
  .my-lg-90 {
    margin-top: -200px !important;
  }
  
  .mr-lg-0,
  .mx-lg-0 {
    margin-right: 0 !important;
  }
  .mb-lg-0,
  .my-lg-0 {
    margin-bottom: 0 !important;
  }
  .ml-lg-0,
  .mx-lg-0 {
    margin-left: 0 !important;
  }
  .m-lg-1 {
    margin: 5px !important;
  }
  .mt-lg-1,
  .my-lg-1 {
    margin-top: 5px !important;
  }
  .mr-lg-1,
  .mx-lg-1 {
    margin-right: 5px !important;
  }
  .mb-lg-1,
  .my-lg-1 {
    margin-bottom: 5px !important;
  }
  .ml-lg-1,
  .mx-lg-1 {
    margin-left: 5px !important;
  }
  .m-lg-2 {
    margin: 10px !important;
  }
  .mt-lg-2,
  .my-lg-2 {
    margin-top: 10px !important;
  }
  .mr-lg-2,
  .mx-lg-2 {
    margin-right: 10px !important;
  }
  .mb-lg-2,
  .my-lg-2 {
    margin-bottom: 10px !important;
  }
  .ml-lg-2,
  .mx-lg-2 {
    margin-left: 10px !important;
  }
  .m-lg-3 {
    margin: 20px !important;
  }
  .mt-lg-3,
  .my-lg-3 {
    margin-top: 20px !important;
  }
  .mr-lg-3,
  .mx-lg-3 {
    margin-right: 20px !important;
  }
  .mb-lg-3,
  .my-lg-3 {
    margin-bottom: 20px !important;
  }
  .ml-lg-3,
  .mx-lg-3 {
    margin-left: 20px !important;
  }
  .m-lg-4 {
    margin: 30px !important;
  }
  .mt-lg-4,
  .my-lg-4 {
    margin-top: 30px !important;
  }
  .mr-lg-4,
  .mx-lg-4 {
    margin-right: 30px !important;
  }
  .mb-lg-4,
  .my-lg-4 {
    margin-bottom: 30px !important;
  }
  .ml-lg-4,
  .mx-lg-4 {
    margin-left: 30px !important;
  }
  .m-lg-5 {
    margin: 5px !important;
  }
  .mt-lg-5,
  .my-lg-5 {
    margin-top: 5px !important;
  }
  .mr-lg-5,
  .mx-lg-5 {
    margin-right: 5px !important;
  }
  .mb-lg-5,
  .my-lg-5 {
    margin-bottom: 5px !important;
  }
  .ml-lg-5,
  .mx-lg-5 {
    margin-left: 5px !important;
  }
  .m-lg-10 {
    margin: 10px !important;
  }
  .mt-lg-10,
  .my-lg-10 {
    margin-top: 10px !important;
  }
  .mr-lg-10,
  .mx-lg-10 {
    margin-right: 10px !important;
  }
  .mb-lg-10,
  .my-lg-10 {
    margin-bottom: 10px !important;
  }
  .ml-lg-10,
  .mx-lg-10 {
    margin-left: 10px !important;
  }
  .m-lg-15 {
    margin: 15px !important;
  }
  .mt-lg-15,
  .my-lg-15 {
    margin-top: 15px !important;
  }
  .mr-lg-15,
  .mx-lg-15 {
    margin-right: 15px !important;
  }
  .mb-lg-15,
  .my-lg-15 {
    margin-bottom: 15px !important;
  }
  .ml-lg-15,
  .mx-lg-15 {
    margin-left: 15px !important;
  }
  .m-lg-20 {
    margin: 20px !important;
  }
  .mt-lg-20,
  .my-lg-20 {
    margin-top: 20px !important;
  }
  .mr-lg-20,
  .mx-lg-20 {
    margin-right: 20px !important;
  }
  .mb-lg-20,
  .my-lg-20 {
    margin-bottom: 20px !important;
  }
  .ml-lg-20,
  .mx-lg-20 {
    margin-left: 20px !important;
  }
  .m-lg-25 {
    margin: 25px !important;
  }
  .mt-lg-25,
  .my-lg-25 {
    margin-top: 25px !important;
  }
  .mr-lg-25,
  .mx-lg-25 {
    margin-right: 25px !important;
  }
  .mb-lg-25,
  .my-lg-25 {
    margin-bottom: 25px !important;
  }
  .ml-lg-25,
  .mx-lg-25 {
    margin-left: 25px !important;
  }
  .m-lg-30 {
    margin: 30px !important;
  }
  .mt-lg-30,
  .my-lg-30 {
    margin-top: 30px !important;
  }
  .mr-lg-30,
  .mx-lg-30 {
    margin-right: 30px !important;
  }
  .mb-lg-30,
  .my-lg-30 {
    margin-bottom: 30px !important;
  }
  .ml-lg-30,
  .mx-lg-30 {
    margin-left: 30px !important;
  }
  .m-lg-35 {
    margin: 35px !important;
  }
  .mt-lg-35,
  .my-lg-35 {
    margin-top: 35px !important;
  }
  .mr-lg-35,
  .mx-lg-35 {
    margin-right: 35px !important;
  }
  .mb-lg-35,
  .my-lg-35 {
    margin-bottom: 35px !important;
  }
  .ml-lg-35,
  .mx-lg-35 {
    margin-left: 35px !important;
  }
  .m-lg-40 {
    margin: 40px !important;
  }
  .mt-lg-40,
  .my-lg-40 {
    margin-top: 40px !important;
  }
  .mr-lg-40,
  .mx-lg-40 {
    margin-right: 40px !important;
  }
  .mb-lg-40,
  .my-lg-40 {
    margin-bottom: 40px !important;
  }
  .ml-lg-40,
  .mx-lg-40 {
    margin-left: 40px !important;
  }
  .m-lg-45 {
    margin: 45px !important;
  }
  .mt-lg-45,
  .my-lg-45 {
    margin-top: 45px !important;
  }
  .mr-lg-45,
  .mx-lg-45 {
    margin-right: 45px !important;
  }
  .mb-lg-45,
  .my-lg-45 {
    margin-bottom: 45px !important;
  }
  .ml-lg-45,
  .mx-lg-45 {
    margin-left: 45px !important;
  }
  .m-lg-50 {
    margin: 50px !important;
  }
  .mt-lg-50,
  .my-lg-50 {
    margin-top: 50px !important;
  }
  .mr-lg-50,
  .mx-lg-50 {
    margin-right: 50px !important;
  }
  .mb-lg-50,
  .my-lg-50 {
    margin-bottom: 50px !important;
  }
  .ml-lg-50,
  .mx-lg-50 {
    margin-left: 50px !important;
  }
  .m-lg-80 {
    margin: 80px !important;
  }
  .mt-lg-80,
  .my-lg-80 {
    margin-top: 80px !important;
  }
  .mr-lg-80,
  .mx-lg-80 {
    margin-right: 80px !important;
  }
  .mb-lg-80,
  .my-lg-80 {
    margin-bottom: 80px !important;
  }
  .ml-lg-80,
  .mx-lg-80 {
    margin-left: 80px !important;
  }
  .p-lg-0 {
    padding: 0 !important;
  }
  .pt-lg-0,
  .py-lg-0 {
    padding-top: 0 !important;
  }
  .pr-lg-0,
  .px-lg-0 {
    padding-right: 0 !important;
  }
  .pb-lg-0,
  .py-lg-0 {
    padding-bottom: 0 !important;
  }
  .pl-lg-0,
  .px-lg-0 {
    padding-left: 0 !important;
  }
  .p-lg-1 {
    padding: 5px !important;
  }
  .pt-lg-1,
  .py-lg-1 {
    padding-top: 5px !important;
  }
  .pr-lg-1,
  .px-lg-1 {
    padding-right: 5px !important;
  }
  .pb-lg-1,
  .py-lg-1 {
    padding-bottom: 5px !important;
  }
  .pl-lg-1,
  .px-lg-1 {
    padding-left: 5px !important;
  }
  .p-lg-2 {
    padding: 10px !important;
  }
  .pt-lg-2,
  .py-lg-2 {
    padding-top: 10px !important;
  }
  .pr-lg-2,
  .px-lg-2 {
    padding-right: 10px !important;
  }
  .pb-lg-2,
  .py-lg-2 {
    padding-bottom: 10px !important;
  }
  .pl-lg-2,
  .px-lg-2 {
    padding-left: 10px !important;
  }
  .p-lg-3 {
    padding: 20px !important;
  }
  .pt-lg-3,
  .py-lg-3 {
    padding-top: 20px !important;
  }
  .pr-lg-3,
  .px-lg-3 {
    padding-right: 20px !important;
  }
  .pb-lg-3,
  .py-lg-3 {
    padding-bottom: 20px !important;
  }
  .pl-lg-3,
  .px-lg-3 {
    padding-left: 20px !important;
  }
  .p-lg-4 {
    padding: 30px !important;
  }
  .pt-lg-4,
  .py-lg-4 {
    padding-top: 30px !important;
  }
  .pr-lg-4,
  .px-lg-4 {
    padding-right: 30px !important;
  }
  .pb-lg-4,
  .py-lg-4 {
    padding-bottom: 30px !important;
  }
  .pl-lg-4,
  .px-lg-4 {
    padding-left: 30px !important;
  }
  .p-lg-5 {
    padding: 5px !important;
  }
  .pt-lg-5,
  .py-lg-5 {
    padding-top: 5px !important;
  }
  .pr-lg-5,
  .px-lg-5 {
    padding-right: 5px !important;
  }
  .pb-lg-5,
  .py-lg-5 {
    padding-bottom: 5px !important;
  }
  .pl-lg-5,
  .px-lg-5 {
    padding-left: 5px !important;
  }
  .p-lg-10 {
    padding: 10px !important;
  }
  .pt-lg-10,
  .py-lg-10 {
    padding-top: 10px !important;
  }
  .pr-lg-10,
  .px-lg-10 {
    padding-right: 10px !important;
  }
  .pb-lg-10,
  .py-lg-10 {
    padding-bottom: 10px !important;
  }
  .pl-lg-10,
  .px-lg-10 {
    padding-left: 10px !important;
  }
  .p-lg-15 {
    padding: 15px !important;
  }
  .pt-lg-15,
  .py-lg-15 {
    padding-top: 15px !important;
  }
  .pr-lg-15,
  .px-lg-15 {
    padding-right: 15px !important;
  }
  .pb-lg-15,
  .py-lg-15 {
    padding-bottom: 15px !important;
  }
  .pl-lg-15,
  .px-lg-15 {
    padding-left: 15px !important;
  }
  .p-lg-20 {
    padding: 20px !important;
  }
  .pt-lg-20,
  .py-lg-20 {
    padding-top: 20px !important;
  }
  .pr-lg-20,
  .px-lg-20 {
    padding-right: 20px !important;
  }
  .pb-lg-20,
  .py-lg-20 {
    padding-bottom: 20px !important;
  }
  .pl-lg-20,
  .px-lg-20 {
    padding-left: 20px !important;
  }
  .p-lg-25 {
    padding: 25px !important;
  }
  .pt-lg-25,
  .py-lg-25 {
    padding-top: 25px !important;
  }
  .pr-lg-25,
  .px-lg-25 {
    padding-right: 25px !important;
  }
  .pb-lg-25,
  .py-lg-25 {
    padding-bottom: 25px !important;
  }
  .pl-lg-25,
  .px-lg-25 {
    padding-left: 25px !important;
  }
  .p-lg-30 {
    padding: 30px !important;
  }
  .pt-lg-30,
  .py-lg-30 {
    padding-top: 30px !important;
  }
  .pr-lg-30,
  .px-lg-30 {
    padding-right: 30px !important;
  }
  .pb-lg-30,
  .py-lg-30 {
    padding-bottom: 30px !important;
  }
  .pl-lg-30,
  .px-lg-30 {
    padding-left: 30px !important;
  }
  .p-lg-35 {
    padding: 35px !important;
  }
  .pt-lg-35,
  .py-lg-35 {
    padding-top: 35px !important;
  }
  .pr-lg-35,
  .px-lg-35 {
    padding-right: 35px !important;
  }
  .pb-lg-35,
  .py-lg-35 {
    padding-bottom: 35px !important;
  }
  .pl-lg-35,
  .px-lg-35 {
    padding-left: 35px !important;
  }
  .p-lg-40 {
    padding: 40px !important;
  }
  .pt-lg-40,
  .py-lg-40 {
    padding-top: 40px !important;
  }
  .pr-lg-40,
  .px-lg-40 {
    padding-right: 40px !important;
  }
  .pb-lg-40,
  .py-lg-40 {
    padding-bottom: 40px !important;
  }
  .pl-lg-40,
  .px-lg-40 {
    padding-left: 40px !important;
  }
  .p-lg-45 {
    padding: 45px !important;
  }
  .pt-lg-45,
  .py-lg-45 {
    padding-top: 45px !important;
  }
  .pr-lg-45,
  .px-lg-45 {
    padding-right: 45px !important;
  }
  .pb-lg-45,
  .py-lg-45 {
    padding-bottom: 45px !important;
  }
  .pl-lg-45,
  .px-lg-45 {
    padding-left: 45px !important;
  }
  .p-lg-50 {
    padding: 50px !important;
  }
  .pt-lg-50,
  .py-lg-50 {
    padding-top: 50px !important;
  }
  .pr-lg-50,
  .px-lg-50 {
    padding-right: 50px !important;
  }
  .pb-lg-50,
  .py-lg-50 {
    padding-bottom: 50px !important;
  }
  .pl-lg-50,
  .px-lg-50 {
    padding-left: 50px !important;
  }
  .p-lg-80 {
    padding: 80px !important;
  }
  .pt-lg-80,
  .py-lg-80 {
    padding-top: 80px !important;
  }
  .pr-lg-80,
  .px-lg-80 {
    padding-right: 80px !important;
  }
  .pb-lg-80,
  .py-lg-80 {
    padding-bottom: 80px !important;
  }
  .pl-lg-80,
  .px-lg-80 {
    padding-left: 80px !important;
  }
  .m-lg-n1 {
    margin: -5px !important;
  }
  .mt-lg-n1,
  .my-lg-n1 {
    margin-top: -5px !important;
  }
  .mr-lg-n1,
  .mx-lg-n1 {
    margin-right: -5px !important;
  }
  .mb-lg-n1,
  .my-lg-n1 {
    margin-bottom: -5px !important;
  }
  .ml-lg-n1,
  .mx-lg-n1 {
    margin-left: -5px !important;
  }
  .m-lg-n2 {
    margin: -10px !important;
  }
  .mt-lg-n2,
  .my-lg-n2 {
    margin-top: -10px !important;
  }
  .mr-lg-n2,
  .mx-lg-n2 {
    margin-right: -10px !important;
  }
  .mb-lg-n2,
  .my-lg-n2 {
    margin-bottom: -10px !important;
  }
  .ml-lg-n2,
  .mx-lg-n2 {
    margin-left: -10px !important;
  }
  .m-lg-n3 {
    margin: -20px !important;
  }
  .mt-lg-n3,
  .my-lg-n3 {
    margin-top: -20px !important;
  }
  .mr-lg-n3,
  .mx-lg-n3 {
    margin-right: -20px !important;
  }
  .mb-lg-n3,
  .my-lg-n3 {
    margin-bottom: -20px !important;
  }
  .ml-lg-n3,
  .mx-lg-n3 {
    margin-left: -20px !important;
  }
  .m-lg-n4 {
    margin: -30px !important;
  }
  .mt-lg-n4,
  .my-lg-n4 {
    margin-top: -30px !important;
  }
  .mr-lg-n4,
  .mx-lg-n4 {
    margin-right: -30px !important;
  }
  .mb-lg-n4,
  .my-lg-n4 {
    margin-bottom: -30px !important;
  }
  .ml-lg-n4,
  .mx-lg-n4 {
    margin-left: -30px !important;
  }
  .m-lg-n5 {
    margin: -5px !important;
  }
  .mt-lg-n5,
  .my-lg-n5 {
    margin-top: -5px !important;
  }
  .mr-lg-n5,
  .mx-lg-n5 {
    margin-right: -5px !important;
  }
  .mb-lg-n5,
  .my-lg-n5 {
    margin-bottom: -5px !important;
  }
  .ml-lg-n5,
  .mx-lg-n5 {
    margin-left: -5px !important;
  }
  .m-lg-n10 {
    margin: -10px !important;
  }
  .mt-lg-n10,
  .my-lg-n10 {
    margin-top: -10px !important;
  }
  .mr-lg-n10,
  .mx-lg-n10 {
    margin-right: -10px !important;
  }
  .mb-lg-n10,
  .my-lg-n10 {
    margin-bottom: -10px !important;
  }
  .ml-lg-n10,
  .mx-lg-n10 {
    margin-left: -10px !important;
  }
  .m-lg-n15 {
    margin: -15px !important;
  }
  .mt-lg-n15,
  .my-lg-n15 {
    margin-top: -15px !important;
  }
  .mr-lg-n15,
  .mx-lg-n15 {
    margin-right: -15px !important;
  }
  .mb-lg-n15,
  .my-lg-n15 {
    margin-bottom: -15px !important;
  }
  .ml-lg-n15,
  .mx-lg-n15 {
    margin-left: -15px !important;
  }
  .m-lg-n20 {
    margin: -20px !important;
  }
  .mt-lg-n20,
  .my-lg-n20 {
    margin-top: -20px !important;
  }
  .mr-lg-n20,
  .mx-lg-n20 {
    margin-right: -20px !important;
  }
  .mb-lg-n20,
  .my-lg-n20 {
    margin-bottom: -20px !important;
  }
  .ml-lg-n20,
  .mx-lg-n20 {
    margin-left: -20px !important;
  }
  .m-lg-n25 {
    margin: -25px !important;
  }
  .mt-lg-n25,
  .my-lg-n25 {
    margin-top: -25px !important;
  }
  .mr-lg-n25,
  .mx-lg-n25 {
    margin-right: -25px !important;
  }
  .mb-lg-n25,
  .my-lg-n25 {
    margin-bottom: -25px !important;
  }
  .ml-lg-n25,
  .mx-lg-n25 {
    margin-left: -25px !important;
  }
  .m-lg-n30 {
    margin: -30px !important;
  }
  .mt-lg-n30,
  .my-lg-n30 {
    margin-top: -30px !important;
  }
  .mr-lg-n30,
  .mx-lg-n30 {
    margin-right: -30px !important;
  }
  .mb-lg-n30,
  .my-lg-n30 {
    margin-bottom: -30px !important;
  }
  .ml-lg-n30,
  .mx-lg-n30 {
    margin-left: -30px !important;
  }
  .m-lg-n35 {
    margin: -35px !important;
  }
  .mt-lg-n35,
  .my-lg-n35 {
    margin-top: -35px !important;
  }
  .mr-lg-n35,
  .mx-lg-n35 {
    margin-right: -35px !important;
  }
  .mb-lg-n35,
  .my-lg-n35 {
    margin-bottom: -35px !important;
  }
  .ml-lg-n35,
  .mx-lg-n35 {
    margin-left: -35px !important;
  }
  .m-lg-n40 {
    margin: -40px !important;
  }
  .mt-lg-n40,
  .my-lg-n40 {
    margin-top: -40px !important;
  }
  .mr-lg-n40,
  .mx-lg-n40 {
    margin-right: -40px !important;
  }
  .mb-lg-n40,
  .my-lg-n40 {
    margin-bottom: -40px !important;
  }
  .ml-lg-n40,
  .mx-lg-n40 {
    margin-left: -40px !important;
  }
  .m-lg-n45 {
    margin: -45px !important;
  }
  .mt-lg-n45,
  .my-lg-n45 {
    margin-top: -45px !important;
  }
  .mr-lg-n45,
  .mx-lg-n45 {
    margin-right: -45px !important;
  }
  .mb-lg-n45,
  .my-lg-n45 {
    margin-bottom: -45px !important;
  }
  .ml-lg-n45,
  .mx-lg-n45 {
    margin-left: -45px !important;
  }
  .m-lg-n50 {
    margin: -50px !important;
  }
  .mt-lg-n50,
  .my-lg-n50 {
    margin-top: -50px !important;
  }
  .mr-lg-n50,
  .mx-lg-n50 {
    margin-right: -50px !important;
  }
  .mb-lg-n50,
  .my-lg-n50 {
    margin-bottom: -50px !important;
  }
  .ml-lg-n50,
  .mx-lg-n50 {
    margin-left: -50px !important;
  }
  .m-lg-n80 {
    margin: -80px !important;
  }
  .mt-lg-n80,
  .my-lg-n80 {
    margin-top: -80px !important;
  }
  .mr-lg-n80,
  .mx-lg-n80 {
    margin-right: -80px !important;
  }
  .mb-lg-n80,
  .my-lg-n80 {
    margin-bottom: -80px !important;
  }
  .ml-lg-n80,
  .mx-lg-n80 {
    margin-left: -80px !important;
  }
  .m-lg-auto {
    margin: auto !important;
  }
  .mt-lg-auto,
  .my-lg-auto {
    margin-top: auto !important;
  }
  .mr-lg-auto,
  .mx-lg-auto {
    margin-right: auto !important;
  }
  .mb-lg-auto,
  .my-lg-auto {
    margin-bottom: auto !important;
  }
  .ml-lg-auto,
  .mx-lg-auto {
    margin-left: auto !important;
  }
}
@media (min-width: 1200px) {
  .m-xl-0 {
    margin: 0 !important;
  }
  .mt-xl-0,
  .my-xl-0 {
    margin-top: 0 !important;
  }
  .mr-xl-0,
  .mx-xl-0 {
    margin-right: 0 !important;
  }
  .mb-xl-0,
  .my-xl-0 {
    margin-bottom: 0 !important;
  }
  .ml-xl-0,
  .mx-xl-0 {
    margin-left: 0 !important;
  }
  .m-xl-1 {
    margin: 5px !important;
  }
  .mt-xl-1,
  .my-xl-1 {
    margin-top: 5px !important;
  }
  .mr-xl-1,
  .mx-xl-1 {
    margin-right: 5px !important;
  }
  .mb-xl-1,
  .my-xl-1 {
    margin-bottom: 5px !important;
  }
  .ml-xl-1,
  .mx-xl-1 {
    margin-left: 5px !important;
  }
  .m-xl-2 {
    margin: 10px !important;
  }
  .mt-xl-2,
  .my-xl-2 {
    margin-top: 10px !important;
  }
  .mr-xl-2,
  .mx-xl-2 {
    margin-right: 10px !important;
  }
  .mb-xl-2,
  .my-xl-2 {
    margin-bottom: 10px !important;
  }
  .ml-xl-2,
  .mx-xl-2 {
    margin-left: 10px !important;
  }
  .m-xl-3 {
    margin: 20px !important;
  }
  .mt-xl-3,
  .my-xl-3 {
    margin-top: 20px !important;
  }
  .mr-xl-3,
  .mx-xl-3 {
    margin-right: 20px !important;
  }
  .mb-xl-3,
  .my-xl-3 {
    margin-bottom: 20px !important;
  }
  .ml-xl-3,
  .mx-xl-3 {
    margin-left: 20px !important;
  }
  .m-xl-4 {
    margin: 30px !important;
  }
  .mt-xl-4,
  .my-xl-4 {
    margin-top: 30px !important;
  }
  .mr-xl-4,
  .mx-xl-4 {
    margin-right: 30px !important;
  }
  .mb-xl-4,
  .my-xl-4 {
    margin-bottom: 30px !important;
  }
  .ml-xl-4,
  .mx-xl-4 {
    margin-left: 30px !important;
  }
  .m-xl-5 {
    margin: 5px !important;
  }
  .mt-xl-5,
  .my-xl-5 {
    margin-top: 5px !important;
  }
  .mr-xl-5,
  .mx-xl-5 {
    margin-right: 5px !important;
  }
  .mb-xl-5,
  .my-xl-5 {
    margin-bottom: 5px !important;
  }
  .ml-xl-5,
  .mx-xl-5 {
    margin-left: 5px !important;
  }
  .m-xl-10 {
    margin: 10px !important;
  }
  .mt-xl-10,
  .my-xl-10 {
    margin-top: 10px !important;
  }
  .mr-xl-10,
  .mx-xl-10 {
    margin-right: 10px !important;
  }
  .mb-xl-10,
  .my-xl-10 {
    margin-bottom: 10px !important;
  }
  .ml-xl-10,
  .mx-xl-10 {
    margin-left: 10px !important;
  }
  .m-xl-15 {
    margin: 15px !important;
  }
  .mt-xl-15,
  .my-xl-15 {
    margin-top: 15px !important;
  }
  .mr-xl-15,
  .mx-xl-15 {
    margin-right: 15px !important;
  }
  .mb-xl-15,
  .my-xl-15 {
    margin-bottom: 15px !important;
  }
  .ml-xl-15,
  .mx-xl-15 {
    margin-left: 15px !important;
  }
  .m-xl-20 {
    margin: 20px !important;
  }
  .mt-xl-20,
  .my-xl-20 {
    margin-top: 20px !important;
  }
  .mr-xl-20,
  .mx-xl-20 {
    margin-right: 20px !important;
  }
  .mb-xl-20,
  .my-xl-20 {
    margin-bottom: 20px !important;
  }
  .ml-xl-20,
  .mx-xl-20 {
    margin-left: 20px !important;
  }
  .m-xl-25 {
    margin: 25px !important;
  }
  .mt-xl-25,
  .my-xl-25 {
    margin-top: 25px !important;
  }
  .mr-xl-25,
  .mx-xl-25 {
    margin-right: 25px !important;
  }
  .mb-xl-25,
  .my-xl-25 {
    margin-bottom: 25px !important;
  }
  .ml-xl-25,
  .mx-xl-25 {
    margin-left: 25px !important;
  }
  .m-xl-30 {
    margin: 30px !important;
  }
  .mt-xl-30,
  .my-xl-30 {
    margin-top: 30px !important;
  }
  .mr-xl-30,
  .mx-xl-30 {
    margin-right: 30px !important;
  }
  .mb-xl-30,
  .my-xl-30 {
    margin-bottom: 30px !important;
  }
  .ml-xl-30,
  .mx-xl-30 {
    margin-left: 30px !important;
  }
  .m-xl-35 {
    margin: 35px !important;
  }
  .mt-xl-35,
  .my-xl-35 {
    margin-top: 35px !important;
  }
  .mr-xl-35,
  .mx-xl-35 {
    margin-right: 35px !important;
  }
  .mb-xl-35,
  .my-xl-35 {
    margin-bottom: 35px !important;
  }
  .ml-xl-35,
  .mx-xl-35 {
    margin-left: 35px !important;
  }
  .m-xl-40 {
    margin: 40px !important;
  }
  .mt-xl-40,
  .my-xl-40 {
    margin-top: 40px !important;
  }
  .mr-xl-40,
  .mx-xl-40 {
    margin-right: 40px !important;
  }
  .mb-xl-40,
  .my-xl-40 {
    margin-bottom: 40px !important;
  }
  .ml-xl-40,
  .mx-xl-40 {
    margin-left: 40px !important;
  }
  .m-xl-45 {
    margin: 45px !important;
  }
  .mt-xl-45,
  .my-xl-45 {
    margin-top: 45px !important;
  }
  .mr-xl-45,
  .mx-xl-45 {
    margin-right: 45px !important;
  }
  .mb-xl-45,
  .my-xl-45 {
    margin-bottom: 45px !important;
  }
  .ml-xl-45,
  .mx-xl-45 {
    margin-left: 45px !important;
  }
  .m-xl-50 {
    margin: 50px !important;
  }
  .mt-xl-50,
  .my-xl-50 {
    margin-top: 50px !important;
  }
  .mr-xl-50,
  .mx-xl-50 {
    margin-right: 50px !important;
  }
  .mb-xl-50,
  .my-xl-50 {
    margin-bottom: 50px !important;
  }
  .ml-xl-50,
  .mx-xl-50 {
    margin-left: 50px !important;
  }
  .m-xl-80 {
    margin: 80px !important;
  }
  .mt-xl-80,
  .my-xl-80 {
    margin-top: 80px !important;
  }
  .mr-xl-80,
  .mx-xl-80 {
    margin-right: 80px !important;
  }
  .mb-xl-80,
  .my-xl-80 {
    margin-bottom: 80px !important;
  }
  .ml-xl-80,
  .mx-xl-80 {
    margin-left: 80px !important;
  }
  .p-xl-0 {
    padding: 0 !important;
  }
  .pt-xl-0,
  .py-xl-0 {
    padding-top: 0 !important;
  }
  .pr-xl-0,
  .px-xl-0 {
    padding-right: 0 !important;
  }
  .pb-xl-0,
  .py-xl-0 {
    padding-bottom: 0 !important;
  }
  .pl-xl-0,
  .px-xl-0 {
    padding-left: 0 !important;
  }
  .p-xl-1 {
    padding: 5px !important;
  }
  .pt-xl-1,
  .py-xl-1 {
    padding-top: 5px !important;
  }
  .pr-xl-1,
  .px-xl-1 {
    padding-right: 5px !important;
  }
  .pb-xl-1,
  .py-xl-1 {
    padding-bottom: 5px !important;
  }
  .pl-xl-1,
  .px-xl-1 {
    padding-left: 5px !important;
  }
  .p-xl-2 {
    padding: 10px !important;
  }
  .pt-xl-2,
  .py-xl-2 {
    padding-top: 10px !important;
  }
  .pr-xl-2,
  .px-xl-2 {
    padding-right: 10px !important;
  }
  .pb-xl-2,
  .py-xl-2 {
    padding-bottom: 10px !important;
  }
  .pl-xl-2,
  .px-xl-2 {
    padding-left: 10px !important;
  }
  .p-xl-3 {
    padding: 20px !important;
  }
  .pt-xl-3,
  .py-xl-3 {
    padding-top: 20px !important;
  }
  .pr-xl-3,
  .px-xl-3 {
    padding-right: 20px !important;
  }
  .pb-xl-3,
  .py-xl-3 {
    padding-bottom: 20px !important;
  }
  .pl-xl-3,
  .px-xl-3 {
    padding-left: 20px !important;
  }
  .p-xl-4 {
    padding: 30px !important;
  }
  .pt-xl-4,
  .py-xl-4 {
    padding-top: 30px !important;
  }
  .pr-xl-4,
  .px-xl-4 {
    padding-right: 30px !important;
  }
  .pb-xl-4,
  .py-xl-4 {
    padding-bottom: 30px !important;
  }
  .pl-xl-4,
  .px-xl-4 {
    padding-left: 30px !important;
  }
  .p-xl-5 {
    padding: 5px !important;
  }
  .pt-xl-5,
  .py-xl-5 {
    padding-top: 5px !important;
  }
  .pr-xl-5,
  .px-xl-5 {
    padding-right: 5px !important;
  }
  .pb-xl-5,
  .py-xl-5 {
    padding-bottom: 5px !important;
  }
  .pl-xl-5,
  .px-xl-5 {
    padding-left: 5px !important;
  }
  .p-xl-10 {
    padding: 10px !important;
  }
  .pt-xl-10,
  .py-xl-10 {
    padding-top: 10px !important;
  }
  .pr-xl-10,
  .px-xl-10 {
    padding-right: 10px !important;
  }
  .pb-xl-10,
  .py-xl-10 {
    padding-bottom: 10px !important;
  }
  .pl-xl-10,
  .px-xl-10 {
    padding-left: 10px !important;
  }
  .p-xl-15 {
    padding: 15px !important;
  }
  .pt-xl-15,
  .py-xl-15 {
    padding-top: 15px !important;
  }
  .pr-xl-15,
  .px-xl-15 {
    padding-right: 15px !important;
  }
  .pb-xl-15,
  .py-xl-15 {
    padding-bottom: 15px !important;
  }
  .pl-xl-15,
  .px-xl-15 {
    padding-left: 15px !important;
  }
  .p-xl-20 {
    padding: 20px !important;
  }
  .pt-xl-20,
  .py-xl-20 {
    padding-top: 20px !important;
  }
  .pr-xl-20,
  .px-xl-20 {
    padding-right: 20px !important;
  }
  .pb-xl-20,
  .py-xl-20 {
    padding-bottom: 20px !important;
  }
  .pl-xl-20,
  .px-xl-20 {
    padding-left: 20px !important;
  }
  .p-xl-25 {
    padding: 25px !important;
  }
  .pt-xl-25,
  .py-xl-25 {
    padding-top: 25px !important;
  }
  .pr-xl-25,
  .px-xl-25 {
    padding-right: 25px !important;
  }
  .pb-xl-25,
  .py-xl-25 {
    padding-bottom: 25px !important;
  }
  .pl-xl-25,
  .px-xl-25 {
    padding-left: 25px !important;
  }
  .p-xl-30 {
    padding: 30px !important;
  }
  .pt-xl-30,
  .py-xl-30 {
    padding-top: 30px !important;
  }
  .pr-xl-30,
  .px-xl-30 {
    padding-right: 30px !important;
  }
  .pb-xl-30,
  .py-xl-30 {
    padding-bottom: 30px !important;
  }
  .pl-xl-30,
  .px-xl-30 {
    padding-left: 30px !important;
  }
  .p-xl-35 {
    padding: 35px !important;
  }
  .pt-xl-35,
  .py-xl-35 {
    padding-top: 35px !important;
  }
  .pr-xl-35,
  .px-xl-35 {
    padding-right: 35px !important;
  }
  .pb-xl-35,
  .py-xl-35 {
    padding-bottom: 35px !important;
  }
  .pl-xl-35,
  .px-xl-35 {
    padding-left: 35px !important;
  }
  .p-xl-40 {
    padding: 40px !important;
  }
  .pt-xl-40,
  .py-xl-40 {
    padding-top: 40px !important;
  }
  .pr-xl-40,
  .px-xl-40 {
    padding-right: 40px !important;
  }
  .pb-xl-40,
  .py-xl-40 {
    padding-bottom: 40px !important;
  }
  .pl-xl-40,
  .px-xl-40 {
    padding-left: 40px !important;
  }
  .p-xl-45 {
    padding: 45px !important;
  }
  .pt-xl-45,
  .py-xl-45 {
    padding-top: 45px !important;
  }
  .pr-xl-45,
  .px-xl-45 {
    padding-right: 45px !important;
  }
  .pb-xl-45,
  .py-xl-45 {
    padding-bottom: 45px !important;
  }
  .pl-xl-45,
  .px-xl-45 {
    padding-left: 45px !important;
  }
  .p-xl-50 {
    padding: 50px !important;
  }
  .pt-xl-50,
  .py-xl-50 {
    padding-top: 50px !important;
  }
  .pr-xl-50,
  .px-xl-50 {
    padding-right: 50px !important;
  }
  .pb-xl-50,
  .py-xl-50 {
    padding-bottom: 50px !important;
  }
  .pl-xl-50,
  .px-xl-50 {
    padding-left: 50px !important;
  }
  .p-xl-80 {
    padding: 80px !important;
  }
  .pt-xl-80,
  .py-xl-80 {
    padding-top: 80px !important;
  }
  .pr-xl-80,
  .px-xl-80 {
    padding-right: 80px !important;
  }
  .pb-xl-80,
  .py-xl-80 {
    padding-bottom: 80px !important;
  }
  .pl-xl-80,
  .px-xl-80 {
    padding-left: 80px !important;
  }
  .m-xl-n1 {
    margin: -5px !important;
  }
  .mt-xl-n1,
  .my-xl-n1 {
    margin-top: -5px !important;
  }
  .mr-xl-n1,
  .mx-xl-n1 {
    margin-right: -5px !important;
  }
  .mb-xl-n1,
  .my-xl-n1 {
    margin-bottom: -5px !important;
  }
  .ml-xl-n1,
  .mx-xl-n1 {
    margin-left: -5px !important;
  }
  .m-xl-n2 {
    margin: -10px !important;
  }
  .mt-xl-n2,
  .my-xl-n2 {
    margin-top: -10px !important;
  }
  .mr-xl-n2,
  .mx-xl-n2 {
    margin-right: -10px !important;
  }
  .mb-xl-n2,
  .my-xl-n2 {
    margin-bottom: -10px !important;
  }
  .ml-xl-n2,
  .mx-xl-n2 {
    margin-left: -10px !important;
  }
  .m-xl-n3 {
    margin: -20px !important;
  }
  .mt-xl-n3,
  .my-xl-n3 {
    margin-top: -20px !important;
  }
  .mr-xl-n3,
  .mx-xl-n3 {
    margin-right: -20px !important;
  }
  .mb-xl-n3,
  .my-xl-n3 {
    margin-bottom: -20px !important;
  }
  .ml-xl-n3,
  .mx-xl-n3 {
    margin-left: -20px !important;
  }
  .m-xl-n4 {
    margin: -30px !important;
  }
  .mt-xl-n4,
  .my-xl-n4 {
    margin-top: -30px !important;
  }
  .mr-xl-n4,
  .mx-xl-n4 {
    margin-right: -30px !important;
  }
  .mb-xl-n4,
  .my-xl-n4 {
    margin-bottom: -30px !important;
  }
  .ml-xl-n4,
  .mx-xl-n4 {
    margin-left: -30px !important;
  }
  .m-xl-n5 {
    margin: -5px !important;
  }
  .mt-xl-n5,
  .my-xl-n5 {
    margin-top: -5px !important;
  }
  .mr-xl-n5,
  .mx-xl-n5 {
    margin-right: -5px !important;
  }
  .mb-xl-n5,
  .my-xl-n5 {
    margin-bottom: -5px !important;
  }
  .ml-xl-n5,
  .mx-xl-n5 {
    margin-left: -5px !important;
  }
  .m-xl-n10 {
    margin: -10px !important;
  }
  .mt-xl-n10,
  .my-xl-n10 {
    margin-top: -10px !important;
  }
  .mr-xl-n10,
  .mx-xl-n10 {
    margin-right: -10px !important;
  }
  .mb-xl-n10,
  .my-xl-n10 {
    margin-bottom: -10px !important;
  }
  .ml-xl-n10,
  .mx-xl-n10 {
    margin-left: -10px !important;
  }
  .m-xl-n15 {
    margin: -15px !important;
  }
  .mt-xl-n15,
  .my-xl-n15 {
    margin-top: -15px !important;
  }
  .mr-xl-n15,
  .mx-xl-n15 {
    margin-right: -15px !important;
  }
  .mb-xl-n15,
  .my-xl-n15 {
    margin-bottom: -15px !important;
  }
  .ml-xl-n15,
  .mx-xl-n15 {
    margin-left: -15px !important;
  }
  .m-xl-n20 {
    margin: -20px !important;
  }
  .mt-xl-n20,
  .my-xl-n20 {
    margin-top: -20px !important;
  }
  .mr-xl-n20,
  .mx-xl-n20 {
    margin-right: -20px !important;
  }
  .mb-xl-n20,
  .my-xl-n20 {
    margin-bottom: -20px !important;
  }
  .ml-xl-n20,
  .mx-xl-n20 {
    margin-left: -20px !important;
  }
  .m-xl-n25 {
    margin: -25px !important;
  }
  .mt-xl-n25,
  .my-xl-n25 {
    margin-top: -25px !important;
  }
  .mr-xl-n25,
  .mx-xl-n25 {
    margin-right: -25px !important;
  }
  .mb-xl-n25,
  .my-xl-n25 {
    margin-bottom: -25px !important;
  }
  .ml-xl-n25,
  .mx-xl-n25 {
    margin-left: -25px !important;
  }
  .m-xl-n30 {
    margin: -30px !important;
  }
  .mt-xl-n30,
  .my-xl-n30 {
    margin-top: -30px !important;
  }
  .mr-xl-n30,
  .mx-xl-n30 {
    margin-right: -30px !important;
  }
  .mb-xl-n30,
  .my-xl-n30 {
    margin-bottom: -30px !important;
  }
  .ml-xl-n30,
  .mx-xl-n30 {
    margin-left: -30px !important;
  }
  .m-xl-n35 {
    margin: -35px !important;
  }
  .mt-xl-n35,
  .my-xl-n35 {
    margin-top: -35px !important;
  }
  .mr-xl-n35,
  .mx-xl-n35 {
    margin-right: -35px !important;
  }
  .mb-xl-n35,
  .my-xl-n35 {
    margin-bottom: -35px !important;
  }
  .ml-xl-n35,
  .mx-xl-n35 {
    margin-left: -35px !important;
  }
  .m-xl-n40 {
    margin: -40px !important;
  }
  .mt-xl-n40,
  .my-xl-n40 {
    margin-top: -40px !important;
  }
  .mr-xl-n40,
  .mx-xl-n40 {
    margin-right: -40px !important;
  }
  .mb-xl-n40,
  .my-xl-n40 {
    margin-bottom: -40px !important;
  }
  .ml-xl-n40,
  .mx-xl-n40 {
    margin-left: -40px !important;
  }
  .m-xl-n45 {
    margin: -45px !important;
  }
  .mt-xl-n45,
  .my-xl-n45 {
    margin-top: -45px !important;
  }
  .mr-xl-n45,
  .mx-xl-n45 {
    margin-right: -45px !important;
  }
  .mb-xl-n45,
  .my-xl-n45 {
    margin-bottom: -45px !important;
  }
  .ml-xl-n45,
  .mx-xl-n45 {
    margin-left: -45px !important;
  }
  .m-xl-n50 {
    margin: -50px !important;
  }
  .mt-xl-n50,
  .my-xl-n50 {
    margin-top: -50px !important;
  }
  .mr-xl-n50,
  .mx-xl-n50 {
    margin-right: -50px !important;
  }
  .mb-xl-n50,
  .my-xl-n50 {
    margin-bottom: -50px !important;
  }
  .ml-xl-n50,
  .mx-xl-n50 {
    margin-left: -50px !important;
  }
  .m-xl-n80 {
    margin: -80px !important;
  }
  .mt-xl-n80,
  .my-xl-n80 {
    margin-top: -80px !important;
  }
  .mr-xl-n80,
  .mx-xl-n80 {
    margin-right: -80px !important;
  }
  .mb-xl-n80,
  .my-xl-n80 {
    margin-bottom: -80px !important;
  }
  .ml-xl-n80,
  .mx-xl-n80 {
    margin-left: -80px !important;
  }
  .m-xl-auto {
    margin: auto !important;
  }
  .mt-xl-auto,
  .my-xl-auto {
    margin-top: auto !important;
  }
  .mr-xl-auto,
  .mx-xl-auto {
    margin-right: auto !important;
  }
  .mb-xl-auto,
  .my-xl-auto {
    margin-bottom: auto !important;
  }
  .ml-xl-auto,
  .mx-xl-auto {
    margin-left: auto !important;
  }
}
.stretched-link::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  pointer-events: auto;
  content: "";
  background-color: rgba(0, 0, 0, 0);
}

.text-monospace {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
}

.text-justify {
  text-align: justify !important;
}

.text-wrap {
  white-space: normal !important;
}

.text-nowrap {
  white-space: nowrap !important;
}

.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-left {
  text-align: left !important;
}

.text-right {
  text-align: right !important;
}

.text-center {
  text-align: center !important;
}

@media (min-width: 576px) {
  .text-sm-left {
    text-align: left !important;
  }
  .text-sm-right {
    text-align: right !important;
  }
  .text-sm-center {
    text-align: center !important;
  }
}
@media (min-width: 768px) {
  .text-md-left {
    text-align: left !important;
  }
  .text-md-right {
    text-align: right !important;
  }
  .text-md-center {
    text-align: center !important;
  }
}
@media (min-width: 992px) {
  .text-lg-left {
    text-align: left !important;
  }
  .text-lg-right {
    text-align: right !important;
  }
  .text-lg-center {
    text-align: center !important;
  }
}
@media (min-width: 1200px) {
  .text-xl-left {
    text-align: left !important;
  }
  .text-xl-right {
    text-align: right !important;
  }
  .text-xl-center {
    text-align: center !important;
  }
}
.text-lowercase {
  text-transform: lowercase !important;
}

.text-uppercase {
  text-transform: uppercase !important;
}

.text-capitalize {
  text-transform: capitalize !important;
}

.font-weight-light {
  font-weight: 300 !important;
}

.font-weight-lighter {
  font-weight: lighter !important;
}

.font-weight-normal {
  font-weight: 400 !important;
}

.font-weight-bold {
  font-weight: 700 !important;
}

.font-weight-bolder {
  font-weight: bolder !important;
}

.font-italic {
  font-style: italic !important;
}

.text-white {
  color: #ffffff !important;
}

.text-primary {
  color: #43d477 !important;
}

a.text-primary:hover, a.text-primary:focus {
  color: #26a553 !important;
}

.text-secondary {
  color: #1f3b64 !important;
}

a.text-secondary:hover, a.text-secondary:focus {
  color: #0d192a !important;
}

.text-success {
  color: #e7f4f0 !important;
}

a.text-success:hover, a.text-success:focus {
  color: #b3dccf !important;
}

.text-info {
  color: #ebf7ff !important;
}

a.text-info:hover, a.text-info:focus {
  color: #9fd8ff !important;
}

.text-warning {
  color: #ffab00 !important;
}

a.text-warning:hover, a.text-warning:focus {
  color: #b37800 !important;
}

.text-danger {
  color: #f63c3c !important;
}

a.text-danger:hover, a.text-danger:focus {
  color: #db0a0a !important;
}

.text-light {
  color: #f9f9f9 !important;
}

a.text-light:hover, a.text-light:focus {
  color: lightgray !important;
}

.text-dark {
  color: #343434 !important;
}

a.text-dark:hover, a.text-dark:focus {
  color: #0e0e0e !important;
}

.text-white {
  color: #ffffff !important;
}

a.text-white:hover, a.text-white:focus {
  color: #d9d9d9 !important;
}

.text-gray {
  color: #000 !important;
}

.text-gray22 {
  color: #fff !important;
}

.text-dark-yellow{

    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    padding:12px 24px !important;

    border-radius:999px !important;

    color:#ffffff !important;

    font-weight:700 !important;
    font-size:14px !important;

    text-decoration:none !important;

    background:
        linear-gradient(
            180deg,
            rgba(15,23,42,.95),
            rgba(30,41,59,.88)
        ) !important;

    border:1px solid rgba(168,85,247,.65) !important;

    box-shadow:
        0 0 12px rgba(34,211,238,.35),
        0 0 24px rgba(59,130,246,.28),
        0 0 40px rgba(168,85,247,.40),
        inset 0 0 10px rgba(255,255,255,.05);

    transition:
        all .35s cubic-bezier(.2,.8,.2,1) !important;
}

.text-dark-yellow:hover{

    color:#ffffff !important;

    transform:translateY(-2px) scale(1.03) !important;

    border-color:rgba(34,211,238,.85) !important;

    box-shadow:
        0 0 18px rgba(34,211,238,.55),
        0 0 36px rgba(59,130,246,.42),
        0 0 60px rgba(168,85,247,.65),
        inset 0 0 16px rgba(255,255,255,.08) !important;
}

/* =========================================
   REGISTER BUTTON MOBILE
========================================= */

@media (max-width: 767px){

    .text-dark-yellow{

        padding: 6px 16px !important;

        font-size: 12px !important;
        font-weight: 700 !important;

        border-radius: 999px !important;

        min-height: 34px !important;

        box-shadow:
            0 0 8px rgba(34,211,238,.28),
            0 0 18px rgba(59,130,246,.22),
            0 0 28px rgba(168,85,247,.32),
            inset 0 0 8px rgba(255,255,255,.04) !important;
    }

    .text-dark-yellow:hover{

        transform: translateY(-1px) scale(1.02) !important;
    }

}

a.text-gray:hover, a.text-gray:focus {
  color: #5c626c !important;
}

.text-gray300 {
  color: #ececec !important;
}

a.text-gray300:hover, a.text-gray300:focus {
  color: #c6c6c6 !important;
}

.text-gray200 {
  color: #f1f1f1 !important;
}

a.text-gray200:hover, a.text-gray200:focus {
  color: #cbcbcb !important;
}

.text-gray100 {
  color: #f9f9f9 !important;
}

a.text-gray100:hover, a.text-gray100:focus {
  color: lightgray !important;
}

.text-body {
  color: #343434 !important;
}

.text-muted {
  color: #6c757d !important;
}

.text-black-50 {
  color: rgba(52, 52, 52, 0.5) !important;
}

.text-white-50 {
  color: rgba(255, 255, 255, 0.5) !important;
}

.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}

.text-decoration-none {
  text-decoration: none !important;
}

.text-break {
  word-break: break-word !important;
  word-wrap: break-word !important;
}

.text-reset {
  color: inherit !important;
}

.visible {
  visibility: visible !important;
}

.invisible {
  visibility: hidden !important;
}

.text-dark-yellow {
    color: #FFFFFF !important;

    transition:
        color .28s ease,
        text-shadow .28s ease,
        transform .28s ease;
}

.text-dark-yellow:hover {
    color: #FACC15 !important;

    text-shadow:
        0 0 10px rgba(250,204,21,.45),
        0 0 22px rgba(250,204,21,.18);

    transform: translateY(-1px);
}

@media print {
  *,
  *::before,
  *::after {
    text-shadow: none !important;
    box-shadow: none !important;
  }
  a:not(.btn) {
    text-decoration: underline;
  }
  abbr[title]::after {
    content: " (" attr(title) ")";
  }
  pre {
    white-space: pre-wrap !important;
  }
  pre,
  blockquote {
    border: 1px solid #adb5bd;
    page-break-inside: avoid;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  @page {
    size: a3;
  }
  body {
    min-width: 992px !important;
  }
  .container {
    min-width: 992px !important;
  }
  .navbar {
    display: none;
  }
  .badge {
    border: 1px solid #343434;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #ffffff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ececec !important;
  }
  .table-dark {
    color: inherit;
  }
  .table-dark th,
  .table-dark td,
  .table-dark thead th,
  .table-dark tbody + tbody {
    border-color: #ececec;
  }
  .table .thead-dark th {
    color: inherit;
    border-color: #ececec;
  }
}
/* ---------- CSS RESET ---------- */
html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td, figure, figcaption, address {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  overflow-y: scroll;
}

article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary {
  display: block;
}

table {
  border-spacing: 0;
}
table th,
table td {
  vertical-align: middle !important;
}

caption, th {
  text-align: center;
}

a:link, a:visited, a:active {
  transition: 0.2s all ease;
}

li {
  list-style: none;
}

a:hover, a:focus {
  cursor: pointer;
  text-decoration: none;
}

* {
  outline: none !important;
}

input[type=text],
input[type=password],
input[type=number],
input[type=email],
input[type=tel],
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
}

.gm-style {
  font-family: "main-font-family" !important;
}
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
  -webkit-animation-name: autofill;
  -webkit-animation-fill-mode: both;
}

svg {
  overflow: auto;
  vertical-align: inherit;
}

ul {
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-inline-start: 0;
}

body.modal-open, body.swal2-shown {
  padding-right: 0 !important;
}

body {
  font-family: var(--font-family-base) !important;
  overflow: hidden;
  background-color: var(--body_bg, #ffffff) !important;
}
@media (max-width: 767px) {
  body {
    font-size: 14px;
  }
}

.custom-switch .custom-control-label::before {
  top: -0.11rem;
}

.form-control:focus {
  border-color: var(--primary) !important;
}

.font-72 {
  font-size: 4.5rem;
  font-weight: bold;
  line-height: 1.22;
}

.font-48 {
  font-size: 3rem;
  font-weight: bold;
  line-height: 1.22;
}

.font-36 {
  font-size: 2.25rem;
  font-weight: bold;
  line-height: 1.22;
}
@media (max-width: 767px) {
  .font-36 {
    font-size: 1.25rem;
  }
}

.font-30 {
  font-size: 1.875rem;
  font-weight: bold;
  line-height: 1.22;
}
@media (max-width: 767px) {
  .font-30 {
    font-size: 1.25rem;
  }
}

.font-24 {
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .font-24 {
    font-size: 1rem;
  }
}

.font-20 {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.22;
}
@media (max-width: 767px) {
  .font-20 {
    font-size: 0.875rem;
  }
}

.font-16 {
  font-size: 1.5rem;
  font-weight: normal;
  line-height: 1.5;
  text-align:center;

}

.font-167 {
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  position:relative;
  top:0px;

}

.font-166 {
  font-size: 1.2rem;
  font-weight: normal;
  line-height: 1.5;
  position:relative;
  top:-200px;
    
}

@media (max-width: 767px) {
  .font-16 {
    font-size: 1.1rem;
  }
}

.font-14 {
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.4;
}

.font-144 {
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.4;
      position: relative;
    top: -50px;

}

.font-12 {
  font-size: 0.75rem;
  font-weight: normal;
  line-height: 1.4;
}

.font-10 {
  font-size: 0.625rem;
  font-weight: normal;
  line-height: 1.4;
}

.font-weight-500 {
  font-weight: 500;
}

.size-32 {
  width: 32px;
  min-width: 32px;
  height: 32px;
}

.size-40 {
  width: 40px;
  min-width: 40px;
  height: 40px;
}

.size-50 {
  width: 50px;
  min-width: 50px;
  height: 50px;
}

@media (max-width: 767px) {
  h2, .h2 {
    font-size: 1.1rem;
  }
}

@media (max-width: 767px) {
  h3, .h3 {
    font-size: 0.9rem;
  }
}
@keyframes sc-pending {
  to {
    background-position: 16px 0;
  }
}
.loadingbar.primary {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAMElEQVQoU2P434CADGgALIZfGkkBdmm4AlzSUAW4pcEK8EljyqJJYygYqdLoCjBlAalbv4Hzd/xyAAAAAElFTkSuQmCC) !important;
  background-repeat: repeat !important;
  animation: sc-pending 0.5s linear infinite;
  background-color: var(--primary);
}
.loadingbar.primary:hover {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAMElEQVQoU2P434CADGgALIZfGkkBdmm4AlzSUAW4pcEK8EljyqJJYygYqdLoCjBlAalbv4Hzd/xyAAAAAElFTkSuQmCC) !important;
  background-repeat: repeat !important;
  animation: sc-pending 0.5s linear infinite;
  background-color: var(--primary);
}
.loadingbar.secondary {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAMElEQVQoU2P434CADGgALIZfGkkBdmm4AlzSUAW4pcEK8EljyqJJYygYqdLoCjBlAalbv4Hzd/xyAAAAAElFTkSuQmCC) !important;
  background-repeat: repeat !important;
  animation: sc-pending 0.5s linear infinite;
  background-color: var(--secondary);
  opacity: 0.75;
}
.loadingbar.secondary:hover {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAMElEQVQoU2P434CADGgALIZfGkkBdmm4AlzSUAW4pcEK8EljyqJJYygYqdLoCjBlAalbv4Hzd/xyAAAAAElFTkSuQmCC) !important;
  background-repeat: repeat !important;
  animation: sc-pending 0.5s linear infinite;
  background-color: var(--secondary);
  opacity: 0.95;
}
.loadingbar.gray {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAMElEQVQoU2P434CADGgALIZfGkkBdmm4AlzSUAW4pcEK8EljyqJJYygYqdLoCjBlAalbv4Hzd/xyAAAAAElFTkSuQmCC) !important;
  background-repeat: repeat !important;
  animation: sc-pending 0.5s linear infinite;
  background-color: #ececec;
  opacity: 0.75;
}
.loadingbar.gray:hover {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAMElEQVQoU2P434CADGgALIZfGkkBdmm4AlzSUAW4pcEK8EljyqJJYygYqdLoCjBlAalbv4Hzd/xyAAAAAElFTkSuQmCC) !important;
  background-repeat: repeat !important;
  animation: sc-pending 0.5s linear infinite;
  background-color: #ececec;
  opacity: 0.95;
}
.loadingbar.danger {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAMElEQVQoU2P434CADGgALIZfGkkBdmm4AlzSUAW4pcEK8EljyqJJYygYqdLoCjBlAalbv4Hzd/xyAAAAAElFTkSuQmCC) !important;
  background-repeat: repeat !important;
  animation: sc-pending 0.5s linear infinite;
  background-color: #f63c3c;
  opacity: 0.75;
  color: #FFFFFF;
}
.loadingbar.danger:hover {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAMElEQVQoU2P434CADGgALIZfGkkBdmm4AlzSUAW4pcEK8EljyqJJYygYqdLoCjBlAalbv4Hzd/xyAAAAAElFTkSuQmCC) !important;
  background-repeat: repeat !important;
  animation: sc-pending 0.5s linear infinite;
  background-color: #f63c3c;
  opacity: 0.95;
}

.btn-transparent {
  background-color: transparent;
  padding: 0 !important;
  border: 0 transparent;
}

.btn-sm, .btn-group-sm > .btn {
  border-radius: 35px;
  font-weight: 500;
  font-size: 18px;
}

.btn-danger {
  box-shadow: 0 3px 6px 0 rgba(201, 1, 1, 0.29);
  background-color: #f63c3c;
  transition: all 0.3s;
}
.btn-danger:hover {
  background-color: #dd3535;
  box-shadow: 0 3px 8px 0 rgba(201, 1, 1, 0.29);
  transition: all 0.3s;
}

@media (max-width: 991px) {
  .btn-sm-block {
    width: 100%;
    max-width: 100%;
  }
}

.btn-border-white {
background: linear-gradient(90deg, rgb(57, 0, 175), rgb(0, 255, 247));
  border-radius: 6px;
  border: solid 1px #f1f1f1;
  color: #fff;
  transition: all 0.3s;
}
.btn-border-white:hover {
  background-color: #ffb200;
  border: solid 1px #ffb200;
  color: #fff !important;

}

.btn-border-gray300 {
  background-color: #ffffff;
  border-radius: 5px;
  border: solid 1px #ececec;
  color: #818894;
  transition: all 0.3s;
}
.btn-border-gray300:hover {
  background-color: #ececec;
  border: solid 1px #ececec;
}

.btn-gray200 {
  color: #818894;
}

.btn-light {
  color: #222222;
}

.on-off-switch .custom-control-label:before {
  background-color: #ffffff !important;
}
.on-off-switch .custom-control-label:after {
  background-color: var(--primary) !important;
}
.on-off-switch .custom-control-input:checked ~ .custom-control-label:after {
  background-color: #ffffff !important;
}

.checkbox-button label {
  cursor: pointer;
  font-size: 0.875rem;
  padding: 5px 10px;
  border-radius: 5px;
  border: solid 2px #f1f1f1;
  background-color: #f1f1f1;
  color: #818894;
  transition: all 0.3s ease;
}
.checkbox-button label:hover {
  border: solid 2px var(--primary);
  transition: all 0.3s ease;
}
.checkbox-button input[type=checkbox], .checkbox-button input[type=radio] {
  visibility: hidden;
  display: none;
  transition: all 0.3s ease;
}
.checkbox-button input[type=checkbox]:checked + label, .checkbox-button input[type=radio]:checked + label {
  border: solid 2px var(--primary);
  background-color: var(--primary);
  color: #ffffff;
  transition: all 0.3s ease;
}
.checkbox-button.primary-selected input[type=checkbox]:checked + label, .checkbox-button.primary-selected input[type=radio]:checked + label {
  color: var(--primary) !important;
}
.checkbox-button.bordered-200 input[type=checkbox]:checked + label, .checkbox-button.bordered-200 input[type=radio]:checked + label {
  color: #ffffff !important;
  background-color: var(--primary) !important;
}

@media (max-width: 991px) {
  .btn {
    font-size: 14px !important;
    padding-right: 22px;
    padding-left: 22px;
    height: 44px;
  }
}

.badge-circle-danger {
  font-size: 0.75rem !important;
}

.badge-circle-primary {
  font-size: 0.75rem !important;
}

.badge {
  line-height: 1.58;
  font-weight: normal;
  pointer-events: none;
}

.badge-outlined {
  color: #ffffff;
  padding: 0;
  border-radius: 50%;
}

.badge-outlined-primary {
  color: #43d477;
  border: solid 1px #43d477;
}
a.badge-outlined-primary:hover, a.badge-outlined-primary:focus {
  color: #43d477;
  border: solid 1px #2aba5e;
}
a.badge-outlined-primary:focus, a.badge-outlined-primary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(67, 212, 119, 0.5);
}

.badge-outlined-secondary {
  color: #1f3b64;
  border: solid 1px #1f3b64;
}
a.badge-outlined-secondary:hover, a.badge-outlined-secondary:focus {
  color: #1f3b64;
  border: solid 1px #13243d;
}
a.badge-outlined-secondary:focus, a.badge-outlined-secondary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(31, 59, 100, 0.5);
}

.badge-outlined-success {
  color: #e7f4f0;
  border: solid 1px #e7f4f0;
}
a.badge-outlined-success:hover, a.badge-outlined-success:focus {
  color: #e7f4f0;
  border: solid 1px #c4e4da;
}
a.badge-outlined-success:focus, a.badge-outlined-success.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(231, 244, 240, 0.5);
}

.badge-outlined-info {
  color: #ebf7ff;
  border: solid 1px #ebf7ff;
}
a.badge-outlined-info:hover, a.badge-outlined-info:focus {
  color: #ebf7ff;
  border: solid 1px #b8e3ff;
}
a.badge-outlined-info:focus, a.badge-outlined-info.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(235, 247, 255, 0.5);
}

.badge-outlined-warning {
  color: #ffab00;
  border: solid 1px #ffab00;
}
a.badge-outlined-warning:hover, a.badge-outlined-warning:focus {
  color: #ffab00;
  border: solid 1px #cc8900;
}
a.badge-outlined-warning:focus, a.badge-outlined-warning.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 171, 0, 0.5);
}

.badge-outlined-danger {
  color: #f63c3c;
  border: solid 1px #f63c3c;
}
a.badge-outlined-danger:hover, a.badge-outlined-danger:focus {
  color: #f63c3c;
  border: solid 1px #f40b0b;
}
a.badge-outlined-danger:focus, a.badge-outlined-danger.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(246, 60, 60, 0.5);
}

.badge-outlined-light {
  color: #f9f9f9;
  border: solid 1px #f9f9f9;
}
a.badge-outlined-light:hover, a.badge-outlined-light:focus {
  color: #f9f9f9;
  border: solid 1px #e0e0e0;
}
a.badge-outlined-light:focus, a.badge-outlined-light.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(249, 249, 249, 0.5);
}

.badge-outlined-dark {
  color: #343434;
  border: solid 1px #343434;
}
a.badge-outlined-dark:hover, a.badge-outlined-dark:focus {
  color: #343434;
  border: solid 1px #1b1b1b;
}
a.badge-outlined-dark:focus, a.badge-outlined-dark.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(52, 52, 52, 0.5);
}

.badge-outlined-white {
  color: #ffffff;
  border: solid 1px #ffffff;
}
a.badge-outlined-white:hover, a.badge-outlined-white:focus {
  color: #ffffff;
  border: solid 1px #e6e6e6;
}
a.badge-outlined-white:focus, a.badge-outlined-white.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5);
}

.badge-outlined-gray {
  color: #818894;
  border: solid 1px #818894;
}
a.badge-outlined-gray:hover, a.badge-outlined-gray:focus {
  color: #818894;
  border: solid 1px #686f7a;
}
a.badge-outlined-gray:focus, a.badge-outlined-gray.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(129, 136, 148, 0.5);
}

.badge-outlined-gray300 {
  color: #ececec;
  border: solid 1px #ececec;
}
a.badge-outlined-gray300:hover, a.badge-outlined-gray300:focus {
  color: #ececec;
  border: solid 1px lightgray;
}
a.badge-outlined-gray300:focus, a.badge-outlined-gray300.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(236, 236, 236, 0.5);
}

.badge-outlined-gray200 {
  color: #f1f1f1;
  border: solid 1px #f1f1f1;
}
a.badge-outlined-gray200:hover, a.badge-outlined-gray200:focus {
  color: #f1f1f1;
  border: solid 1px #d8d8d8;
}
a.badge-outlined-gray200:focus, a.badge-outlined-gray200.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(241, 241, 241, 0.5);
}

.badge-outlined-gray100 {
  color: #f9f9f9;
  border: solid 1px #f9f9f9;
}
a.badge-outlined-gray100:hover, a.badge-outlined-gray100:focus {
  color: #f9f9f9;
  border: solid 1px #e0e0e0;
}
a.badge-outlined-gray100:focus, a.badge-outlined-gray100.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(249, 249, 249, 0.5);
}

.badge-circle-primary {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #43d477;
}
a.badge-circle-primary:hover, a.badge-circle-primary:focus {
  color: #ffffff;
  background-color: #2aba5e;
}
a.badge-circle-primary:focus, a.badge-circle-primary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(67, 212, 119, 0.5);
}

.badge-circle-secondary {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #1f3b64;
}
a.badge-circle-secondary:hover, a.badge-circle-secondary:focus {
  color: #ffffff;
  background-color: #13243d;
}
a.badge-circle-secondary:focus, a.badge-circle-secondary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(31, 59, 100, 0.5);
}

.badge-circle-success {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #e7f4f0;
}
a.badge-circle-success:hover, a.badge-circle-success:focus {
  color: #ffffff;
  background-color: #c4e4da;
}
a.badge-circle-success:focus, a.badge-circle-success.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(231, 244, 240, 0.5);
}

.badge-circle-info {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #ebf7ff;
}
a.badge-circle-info:hover, a.badge-circle-info:focus {
  color: #ffffff;
  background-color: #b8e3ff;
}
a.badge-circle-info:focus, a.badge-circle-info.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(235, 247, 255, 0.5);
}

.badge-circle-warning {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #ffab00;
}
a.badge-circle-warning:hover, a.badge-circle-warning:focus {
  color: #ffffff;
  background-color: #cc8900;
}
a.badge-circle-warning:focus, a.badge-circle-warning.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 171, 0, 0.5);
}

.badge-circle-danger {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #f63c3c;
}
a.badge-circle-danger:hover, a.badge-circle-danger:focus {
  color: #ffffff;
  background-color: #f40b0b;
}
a.badge-circle-danger:focus, a.badge-circle-danger.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(246, 60, 60, 0.5);
}

.badge-circle-light {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #f9f9f9;
}
a.badge-circle-light:hover, a.badge-circle-light:focus {
  color: #ffffff;
  background-color: #e0e0e0;
}
a.badge-circle-light:focus, a.badge-circle-light.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(249, 249, 249, 0.5);
}

.badge-circle-dark {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #343434;
}
a.badge-circle-dark:hover, a.badge-circle-dark:focus {
  color: #ffffff;
  background-color: #1b1b1b;
}
a.badge-circle-dark:focus, a.badge-circle-dark.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(52, 52, 52, 0.5);
}

.badge-circle-white {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #212529;
  background-color: #ffffff;
}
a.badge-circle-white:hover, a.badge-circle-white:focus {
  color: #212529;
  background-color: #e6e6e6;
}
a.badge-circle-white:focus, a.badge-circle-white.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5);
}

.badge-circle-gray {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #818894;
}
a.badge-circle-gray:hover, a.badge-circle-gray:focus {
  color: #ffffff;
  background-color: #686f7a;
}
a.badge-circle-gray:focus, a.badge-circle-gray.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(129, 136, 148, 0.5);
}

.badge-circle-gray300 {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #ececec;
}
a.badge-circle-gray300:hover, a.badge-circle-gray300:focus {
  color: #ffffff;
  background-color: lightgray;
}
a.badge-circle-gray300:focus, a.badge-circle-gray300.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(236, 236, 236, 0.5);
}

.badge-circle-gray200 {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #f1f1f1;
}
a.badge-circle-gray200:hover, a.badge-circle-gray200:focus {
  color: #ffffff;
  background-color: #d8d8d8;
}
a.badge-circle-gray200:focus, a.badge-circle-gray200.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(241, 241, 241, 0.5);
}

.badge-circle-gray100 {
  width: 24px;
  height: 24px;
  font-size: 0.875rem;
  border-radius: 50%;
  padding: 0;
  line-height: 1.58;
  color: #ffffff;
  background-color: #f9f9f9;
}
a.badge-circle-gray100:hover, a.badge-circle-gray100:focus {
  color: #ffffff;
  background-color: #e0e0e0;
}
a.badge-circle-gray100:focus, a.badge-circle-gray100.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(249, 249, 249, 0.5);
}

.nav-tabs {
  /*.nav-item, .nav-item a {
      &.active, &:hover {
          background-color: transparent !important;
          border: none !important;
      }
  }*/
}
.nav-tabs .nav-item a.active:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 85%;
  height: 5px;
  background-color: var(--primary);
  border-radius: 5px;
  transform: translate(-50%, 17px);
}
.rtl .nav-tabs .nav-item a.active:after {
  bottom: 2px;
}

.dropdown-menu {
  padding: 15px;
  min-width: 325px;
  transform: translate3d(0px, 54px, 0px) !important;
  z-index: 511;
  border: unset;
  top: 40%;
  transition: all 0.1s;
  overflow: visible !important;
}
.dropdown-menu.user-profile-dropdown {
  min-width: 125px;
}
.dropdown-menu.user-profile-dropdown .dropdown-item {
  padding: 5px 0 !important;
}
.dropdown-menu:after {
  content: "";
  position: absolute;
  top: -10px;
  left: 15px;
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #fff;
}

.custom-dropdown .custom-dropdown-toggle .custom-dropdown-toggle-flag {
  width: 15px;
  min-width: 15px;
  height: 15px;
}
.custom-dropdown:not(:hover) > .custom-dropdown-body {
  visibility: hidden;
  opacity: 0;
  transform: translateY(15px);
}
.custom-dropdown .custom-dropdown-body {
  position: absolute;
  top: 22px;
  left: 0;
  width: -moz-max-content;
  width: max-content;
  min-width: 220px;
  background: #181137;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  border-radius: 10px;
  transition: all 0.3s ease;
  z-index: 580;
}
.rtl .custom-dropdown .custom-dropdown-body {
  left: auto;
  right: 0;
}
.custom-dropdown .custom-dropdown-body__item {
  color: var(--dark);
  border-left: 2px solid transparent;
}
.custom-dropdown .custom-dropdown-body__item > div {
  transition: all 0.3s ease;
}
.custom-dropdown .custom-dropdown-body__item.active {
  border-left: 2px solid var(--primary);
  color: var(--primary);
}
.custom-dropdown .custom-dropdown-body__item.active * {
  color: var(--primary);
}
.rtl .custom-dropdown .custom-dropdown-body__item {
  border-left: none;
  border-right: 2px solid transparent;
}
.rtl .custom-dropdown .custom-dropdown-body__item.active {
  border-left: none;
  border-right: 2px solid var(--primary);
}
.custom-dropdown .custom-dropdown-body__item:hover {
  background-color: #f9f9f9;
}
.custom-dropdown .custom-dropdown-body__item:hover > div {
  transform: translateX(8px);
}
.custom-dropdown .custom-dropdown-body__flag {
  width: 24px;
  min-width: 24px;
  height: 24px;
}

html.html-modal-open {
  overflow: hidden;
  touch-action: none;
}

.img-cover {
  width: 100%;
  height: 100%;
  overflow: hidden;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: 50% 50%;
  object-position: 50% 50%;
}

.img-cover2 {
  /* Valores base para móviles pequeños */
  width: 80vw;
  height: 13.33vw; /* Mantiene la proporción 300/50 = 6, así que height = width/6 */
  max-width: 300px; /* Tamaño máximo igual al original */
  max-height: 50px;
  overflow: visible;
  object-fit: cover;
  object-position: center center;
  position: relative;
  left: 50%;
  transform: translateX(-50%); /* Centrado más preciso */
}

.img-cover55 {
  width: 100%;
  height: 100%;
  object-position: center;
  display: block;
}


/* Media queries para diferentes tamaños */
@media (min-width: 375px) {
  .img-cover2 {
    width: 70vw;
  }
}

@media (min-width: 425px) {
  .img-cover2 {
    width: 60vw;
  }
}

@media (min-width: 600px) {
  .img-cover2 {
    width: 50vw;
  }
}

@media (min-width: 768px) {
  .img-cover2 {
    width: 40vw;
  }
}

@media (min-width: 1024px) {
  .img-cover2 {
    width: 300px; /* Vuelve al tamaño original en pantallas grandes */
    height: 50px;
    left: -10px; /* Solo si realmente necesitas este desplazamiento */
    transform: none;
    top:10px;
  }
}

@media (max-width: 767px) {
  .xs-w-100 {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .xs-fluid {
    width: 100% !important;
    padding: 0 !important;
    margin: 0;
  }
}

.h-40px {
  height: 40px;
}

.cursor-pointer, .custom-control-label {
  cursor: pointer;
}

.text-dark-yellow {
    color: #FFFFFF !important;

    transition:
        color .28s ease,
        text-shadow .28s ease,
        transform .28s ease;
}

.text-dark-yellow:hover {
    color: #FACC15 !important;

    text-shadow:
        0 0 10px rgba(250,204,21,.45),
        0 0 22px rgba(250,204,21,.18);

    transform: translateY(-1px);
}

p {
  line-height: 1.5;
}

.text-hover-primary:hover {
  color: var(--primary) !important;
}

.text-hover-secondary:hover {
  color: var(--secondary) !important;
}

.text-decoration-line-through {
  text-decoration: line-through;
}

.line-height-1 {
  line-height: 1;
}

.bg-info-light {
  background-color: #f7fafd;
}

.status-badge-dark {
  border: solid 1px #343434;
  color: #343434;
  background-color: unset;
}

.status-badge-primary {
  border: solid 1px var(--primary);
  color: var(--primary);
  background-color: unset;
}

.status-badge-secondary {
  border: solid 1px var(--secondary);
  color: var(--secondary);
  background-color: unset;
}

.status-badge-danger {
  border: solid 1px #f63c3c;
  color: #f63c3c;
  background-color: unset;
}

.status-badge-warning {
  border: solid 1px #ffab00;
  color: #ffab00;
  background-color: unset;
}

.tab-content .webinar-card:hover {
  transform: unset !important;
}

.panel-content .alert-warning {
  margin-top: 10px !important;
  font-weight: 500 !important;
  color: #343434;
  background-color: rgba(255, 171, 0, 0.4392156863) !important;
  border-color: #ffab00 !important;
}
.panel-content .alert {
  position: relative;
  padding: 1rem !important;
  margin-bottom: 0;
  border: 1px solid transparent;
  border-radius: 10px;
}

.px-12 {
  padding: 0 12px !important;
}

#topFilters label {
  font-size: 0.875rem;
}

.filters-container label {
  font-size: 0.875rem;
}

.rtl {
  direction: rtl !important;
}

.ltr {
  direction: ltr !important;
}

.list-style-none li {
  list-style: none;
}

.white-space-pre-wrap {
  white-space: pre-wrap;
}

.close-body-scroll {
  overflow: hidden;
  touch-action: none;
}

#avatarCropModalContainer #imageCropperContainer {
  margin: 0 auto;
  text-align: center;
}
#avatarCropModalContainer #imageCropperContainer > * {
  margin: 0 auto;
}
#avatarCropModalContainer #imageCropperContainer .cropit-preview, #avatarCropModalContainer #imageCropperContainer .cropit-tools {
  direction: ltr;
}
#avatarCropModalContainer #imageCropperContainer .cropit-preview {
  background-color: #f9f9f9;
  background-size: cover;
  border: 1px solid #ccc;
  border-radius: 10px;
  margin-top: 7px;
  margin-bottom: 15px;
  text-align: center;
  z-index: 99;
  overflow: hidden;
  direction: ltr;
}
#avatarCropModalContainer #imageCropperContainer .cropit-preview-image-container {
  cursor: move;
}
#avatarCropModalContainer #imageCropperContainer .rotate-cw, #avatarCropModalContainer #imageCropperContainer .rotate-ccw {
  font-size: 1.3em;
}
#avatarCropModalContainer #imageCropperContainer .image-size-label {
  margin-top: 10px;
}
#avatarCropModalContainer #imageCropperContainer .cropit-image-zoom-input {
  display: inline-block;
  width: 120px;
}
#avatarCropModalContainer #imageCropperContainer .cropit-image-input {
  display: none;
}
#avatarCropModalContainer #imageCropperContainer .cropit-preview-background {
  opacity: 0.2;
  z-index: 33;
}

#coverCropperContainer {
  width: 100%;
}
#coverCropperContainer > .cropit-preview {
  background-color: transparent;
  background-size: cover;
  height: 300px;
  direction: ltr;
}
#coverCropperContainer .cropit-preview-image-container {
  cursor: move;
}
#coverCropperContainer .cropit-image-input {
  display: none;
}
#coverCropperContainer div.buttons {
  text-align: left;
  margin: 5px 0 5px 15px;
}
.rtl #coverCropperContainer div.buttons {
  text-align: right;
}

.panel-content {
  padding: 30px 15px;
  width: calc(100% - 254px);
}
@media (max-width: 991px) {
  .panel-content {
    padding: 90px 15px 30px;
    width: 100%;
  }
}
.panel-content .webinar-card {
  box-shadow: 0px 12px 23px 0px rgba(62, 73, 84, 0.04) !important;
}
.panel-content .webinar-card:hover {
  transform: unset !important;
  box-shadow: 0px 8px 23px 0px rgba(62, 73, 84, 0.15) !important;
  transition: all 0.5s ease;
}
.panel-content .webinar-card .image-box::after {
  border-radius: 10px 0 0 10px;
}

.panel-section-card {
  border-radius: 10px;
  box-shadow: 0px 12px 23px 0px rgba(62, 73, 84, 0.04);
  background-color: #ffffff;
}

.section-title {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.2;
  color: #171347;
}
.section-title.after-line {
  display: flex;
  flex: 1;
  align-items: center;
}
.section-title.after-line:after {
  content: "";
  flex: 1 0 20px;
  height: 2px;
  background-color: #f1f1f1;
  margin-left: 10px;
}

.date-input {
  display: flex;
  align-items: stretch;
}
.date-input .date-icon {
  width: 38px;
  min-width: 38px;
  border: solid 1px #ececec;
  background-color: var(--secondary);
  border-radius: 5px 0 0 5px;
}
.date-input input {
  border-radius: 0 5px 5px 0;
}

.bootstrap-timepicker-widget table td input {
  width: 35px !important;
}
.bootstrap-timepicker-widget table td a {
  padding: 0 !important;
}

.chevron-up-icon {
  position: relative;
  width: 24px !important;
  height: 16px;
  display: inline-flex;
}
.chevron-up-icon:after {
  content: url("/assets/default/img/chevron-up.svg");
  position: absolute;
  width: 100%;
  height: 100%;
}

.chevron-down-icon {
  position: relative;
  width: 24px !important;
  height: 16px;
  display: inline-flex;
}
.chevron-down-icon:after {
  content: url("/assets/default/img/chevron-down.svg");
  position: absolute;
  width: 100%;
  height: 100%;
}

.activities-container {
  border-radius: 10px;
  box-shadow: 0px 12px 23px 0px rgba(62, 73, 84, 0.04);
  background-color: #ffffff;
}
@media (max-width: 767px) {
  .activities-container img {
    width: 44px;
    height: 44px;
  }
}

.no-result .no-result-logo {
  position: relative;
  width: 250px;
  height: 250px;
  border-radius: 50%;
}
.no-result .no-result-logo img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  transform: translate(-50%, -50%);
}
@media (max-width: 767px) {
  .no-result .no-result-logo {
    width: 175px;
    height: 175px;
  }
  .no-result .no-result-logo img {
    width: 175px;
    max-width: 175px;
  }
}
.no-result.default-no-result .no-result-logo {
  background-image: linear-gradient(to bottom, #dbffe8, var(--primary));
}
@media (max-width: 767px) {
  .no-result.default-no-result br {
    display: none;
  }
}
.no-result.status-failed .no-result-logo {
  background-image: linear-gradient(to bottom, #ffdbdf, #f61111);
}
.no-result.status-waiting .no-result-logo {
  background-image: linear-gradient(to bottom, #feeac2, #ffab00);
}

.shadow-xs {
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
}

.text-decoration-underline {
  text-decoration: underline;
}

.list-group-custom li {
  position: relative;
  padding-left: 15px;
}
.list-group-custom li:after {
  content: "";
  width: 9px;
  height: 9px;
  background-color: #818894;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 5px;
}
.rtl .list-group-custom li {
  padding-right: 15px;
  padding-left: 0;
}
.rtl .list-group-custom li:after {
  left: auto;
  right: 0;
}

.site-top-banner {
  height: 530px;
}
.site-top-banner:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0.6;
  background-color: #000000;
}
.site-top-banner.opacity-04:after {
  opacity: 0.4;
}
@media (max-width: 991px) {
  .site-top-banner {
    height: 430px;
  }
}
@media (max-width: 767px) {
  .site-top-banner {
    height: 230px;
  }
}

.text-ellipsis {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.form-control[readonly] {
  background: #ffffff;
}
.form-control[readonly]:hover, .form-control[readonly]:focus {
  border-color: #ececec;
}

.input-group-text-rounded-left {
  border-top-left-radius: 0.5rem !important;
  border-bottom-left-radius: 0.5rem !important;
}

.custom-upload-input-group {
  position: relative;
  display: flex;
  width: 100%;
  height: 2.5rem;
  cursor: pointer;
}
.custom-upload-input-group .custom-upload-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0.5rem 1rem;
  margin-bottom: 0;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.25;
  color: #FFFFFF;
  text-align: center;
  white-space: nowrap;
  background-color: var(--secondary);
  border: 1px solid #ececec;
  border-radius: 0.5rem 0 0 0.5rem;
}
.custom-upload-input-group .custom-upload-input {
  display: flex;
  align-items: center;
  padding: 0.5rem 1rem;
  width: 100%;
  height: 100%;
  font-size: 0.75rem;
  background-color: #ffffff;
  background-clip: padding-box;
  border: 1px solid #ececec;
  border-radius: 0 0.5rem 0.5rem 0;
}

.invisible-file-input {
  opacity: 0;
  visibility: hidden;
  position: absolute;
}

.c-not-allowed {
  cursor: not-allowed;
}

.btn-close-advertising-modal {
  position: absolute;
  top: 10px;
  right: 15px;
}

.border-dashed-gray300 {
  border: 1px dashed #ececec;
}

.floating-bar {
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  height: 80px;
  z-index: 15000;
}
.floating-bar.is-fixed {
  position: fixed;
  left: 0;
  right: 0;
}
.floating-bar.position-top {
  top: 0;
}
.floating-bar.position-bottom {
  bottom: 0;
}
.floating-bar__icon {
  width: 40px;
  min-width: 40px;
  max-width: 40px;
  height: 40px;
}

.d-flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.hidden-input {
  position: absolute;
  opacity: 0;
  visibility: hidden;
}

.success-transparent-alert {
  border-radius: 15px;
  border: solid 1px #43d477;
  background-color: rgba(67, 212, 119, 0.05);
}
.success-transparent-alert__icon {
  width: 40px;
  min-width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: rgba(67, 212, 119, 0.3);
}
.success-transparent-alert * {
  color: #43d477;
}

.danger-transparent-alert {
  border-radius: 15px;
  border: solid 1px #f63c3c;
  background-color: rgba(246, 60, 60, 0.05);
}
.danger-transparent-alert__icon {
  width: 40px;
  min-width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: rgba(246, 60, 60, 0.3);
}
.danger-transparent-alert * {
  color: #f63c3c;
}

.select2-container {
  width: 100% !important;
}
.select2-container .select2-selection {
  display: block;
  width: 100%;
  height: 2.5rem !important;
  padding: 0.5rem 1rem !important;
  font-size: 0.75rem !important;
  font-weight: normal !important;
  line-height: 1.25 !important;
  color: #343434 !important;
  background-color: #ffffff;
  background-clip: padding-box;
  border: 1px solid #ececec !important;
  border-radius: 0.5rem !important;
  box-shadow: none !important;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.select2-container .select2-selection .select2-selection__arrow {
  top: 8px !important;
}
.select2-container .select2-dropdown {
  border: 1px solid #ececec !important;
  box-shadow: 0 3px 15px 0 rgba(0, 0, 0, 0.1);
}

.select2-selection__choice {
  background-color: var(--secondary) !important;
  border: 1px solid #ececec !important;
  color: #fff;
  margin-top: 0 !important;
  padding: 2px 5px !important;
}

.select2-selection__choice__remove {
  color: #ffffff !important;
}

.select2-results__option {
  font-size: 0.75rem !important;
}

.bootstrap-tagsinput {
  display: block !important;
  box-shadow: none !important;
  border: 1px solid #ececec !important;
  padding: 0.5rem 1rem !important;
  font-size: 0.75rem;
  font-weight: normal;
  color: #343434 !important;
  background-color: #ffffff;
  background-clip: padding-box;
  border-radius: 0.5rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.bootstrap-tagsinput input {
  width: 100% !important;
  max-width: 100% !important;
}
.bootstrap-tagsinput .tag {
  margin-top: 2px;
}

.top-navbar {
  height: 53px;
}
@media (max-width: 991px) {
  .top-navbar {
    height: auto;
  }
}
@media (min-width: 991px) {
  .top-navbar .top-contact-box {
    border-bottom: 0 !important;
  }
}
.top-navbar .navbar-search .search-icon {
  position: absolute;
  right: 10px;
  color: #818894;
}
.rtl .top-navbar .navbar-search .search-icon {
  right: auto;
  left: 10px;
}
.top-navbar .dropdown .badge {
  width: 20px;
  height: 20px;
}
.top-navbar .dropdown .dropdown-toggle:after {
  display: none;
}
.top-navbar .dropdown .dropdown-menu {
  right: 0 !important;
  left: auto !important;
}
#panel_app .top-navbar .dropdown .dropdown-menu {
  transform: translate3d(0, 0, 0) !important;
}
.top-navbar .dropdown .dropdown-menu:after {
  right: 15px;
  left: auto;
}
.rtl .top-navbar .dropdown .dropdown-menu {
  right: auto !important;
  left: 0 !important;
}
.rtl .top-navbar .dropdown .dropdown-menu:after {
  right: auto;
  left: 15px;
}
@media (max-width: 767px) {
  .top-navbar .dropdown .dropdown-menu {
    position: fixed !important;
    top: 110% !important;
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100%;
    z-index: 501;
    display: none !important;
    transition: top 0.4s cubic-bezier(0.43, 0.83, 0.54, 1.02), opacity 0.4s linear;
    border-radius: 0;
  }
  .top-navbar .dropdown .dropdown-menu.show {
    top: 0 !important;
    transform: none !important;
    margin-top: 0;
  }
  .top-navbar .dropdown .dropdown-menu:after {
    display: none;
  }
}
.top-navbar .navbar-user img {
  width: 40px;
  height: 40px;
  -o-object-fit: contain;
     object-fit: contain;
}
.top-navbar .navbar-user .user-name {
  line-height: 1.31;
  color: var(--secondary);
}

.navbar-shopping-cart {
  height: 100%;
}
@media (min-width: 767px) {
  .navbar-shopping-cart {
    max-height: 360px;
  }
}
.navbar-shopping-cart .navbar-cart-box {
  margin-top: 20px;
}
.navbar-shopping-cart .navbar-cart-box:first-child {
  margin-top: 0;
}
.navbar-shopping-cart .navbar-cart-box .navbar-cart-img {
  width: 105px;
  min-width: 105px;
  height: 71px;
  min-height: 71px;
}
.navbar-shopping-cart .navbar-cart-box .navbar-cart-img img {
  border-radius: 5px;
}
.navbar-shopping-cart .navbar-cart-box .navbar-cart-info {
  margin-left: 12px;
}
.rtl .navbar-shopping-cart .navbar-cart-box .navbar-cart-info {
  margin-left: 0;
  margin-right: 12px;
}
.navbar-shopping-cart .navbar-cart-box .navbar-cart-info .price .off {
  font-size: 12px;
  font-weight: normal;
  color: #818894;
  text-decoration: line-through;
}
.navbar-shopping-cart .navbar-cart-box .navbar-cart-info h4 {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--secondary);
}
@media (max-width: 767px) {
  .navbar-shopping-cart .navbar-cart-actions {
    height: 240px;
  }
}
.navbar-shopping-cart .navbar-cart-total {
  padding-top: 12px;
}
@media (max-width: 767px) {
  .navbar-shopping-cart .navbar-cart-total {
    padding-top: 20px;
  }
}
.navbar-shopping-cart .navbar-cart-total strong {
  font-size: 16px;
  line-height: 1.2;
}
.navbar-shopping-cart .navbar-cart-total .total-text {
  font-weight: 500;
  color: #171347;
}

.navbar-notification-card {
  height: calc(100% - 50px);
}
@media (min-width: 767px) {
  .navbar-notification-card {
    max-height: 360px;
  }
}
.navbar-notification-card .navbar-notification-item {
  padding: 10px;
}
.navbar-notification-card .navbar-notification-item .notify-at {
  font-size: 12px;
  font-weight: normal;
  line-height: 1.29;
  color: #818894;
}
.navbar-notification-card .navbar-notification-item:last-child {
  border-bottom: 0 !important;
}

@media (max-width: 767px) {
  .navbar-notification-action {
    height: 72px;
  }
}

.language-select .dropdown-menu {
  padding: 20px;
  min-width: 15rem;
}
.language-select .dropdown-menu li {
  margin-bottom: 10px;
  font-size: 14px;
}
.rtl .language-select .dropdown-menu {
  text-align: right;
  left: auto !important;
  right: 0 !important;
}
.rtl .language-select .dropdown-menu:after {
  left: auto !important;
  right: 30px !important;
}
.rtl .language-select .dropdown-menu .flagstrap-icon {
  margin-right: initial !important;
  margin-left: 5px;
}

.navbar-auth-user-dropdown .dropdown-user-avatar {
  background-color: rgba(236, 236, 236, 0.1);
}
.navbar-auth-user-dropdown .custom-dropdown-body {
  min-width: 280px;
  top: 44px;
  left: auto;
  right: 0;
}
.rtl .navbar-auth-user-dropdown .custom-dropdown-body {
  right: auto;
  left: 0;
}
.navbar-auth-user-dropdown .navbar-auth-user-dropdown-item {
  transition: all 0.3s ease;
}
.navbar-auth-user-dropdown .navbar-auth-user-dropdown-item .icons {
  width: 20px;
  min-width: 20px;
  height: 20px;
}
.navbar-auth-user-dropdown .navbar-auth-user-dropdown-item:hover {
  background-color: #f9f9f9;
}
.navbar-auth-user-dropdown .navbar-auth-user-dropdown-item:hover a {
  transform: translateX(8px);
}

.navbar {
    /* Nueva base cromática Aulopolis Premium */
    background: linear-gradient(90deg, 
        #060816 0%, 
        #110B29 45%, 
        #3B0B7E 100%
    ) !important;

    /* Mantenemos tus propiedades de estructura con ajustes premium */
    z-index: 2; /* Subido para evitar bloqueos con la search bar */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); /* Sombra más profunda y realista */
    
    /* Efecto Glassmorphism obligatorio para el estilo solicitado */
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    transition: all 0.4s cubic-bezier(0.43, 0.83, 0.54, 1.02);
}
.navbar.sticky {
  position: fixed;
  top: 0;
  width: 100%;
  border-bottom: 1px solid #ececec;
}
.navbar .navbar-toggler {
  font-size: 1rem;
}
/* --- Estilos Base del Botón de Categorías --- */
.navbar .navbar-categories-dropdown .dropdown-toggle {
  padding: 12px 25px 12px 20px;
  border-radius: 8px; /* Bordes ligeramente más rectos para mayor seriedad */
  background-color: #f8f9fa;
  font-weight: 600;
  letter-spacing: 0.5px;
  border: 1px solid rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
}

.navbar .navbar-categories-dropdown .dropdown-toggle:hover {
  background-color: #ffffff;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.navbar .navbar-categories-dropdown .dropdown-toggle:after {
  display: none;
}

/* --- Enlaces de Navegación (Escritorio) --- */
.navbar .nav-item .nav-link {
  font-size: 15px; /* Un punto más grande para claridad */
  font-weight: 500;
  text-align: center;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  padding: 10px 15px;
  transition: color 0.3s ease, transform 0.2s ease;
}

.navbar .nav-item .nav-link:hover {
  color: #c5a059; /* Dorado institucional en lugar de naranja */
  transform: translateY(-2px);
}

/* --- Modo Móvil Impactante (Pantallas < 767.98px) --- */
@media (max-width: 767.98px) {
  .navbar .nav-item {
    margin: 15px 0; /* Más espacio entre opciones */
    width: 100%;
  }

  .navbar .nav-item .nav-link {
    /* TAMAÑO DE FUENTE GRANDE Y PROFESIONAL */
    font-size: 24px; 
    font-weight: 700;
    color: #1a237e; /* Azul marino profundo para máxima elegancia */
    text-align: left; /* Alineación a la izquierda para un look tipo editorial */
    padding: 15px 25px;
    display: block;
    border-left: 4px solid transparent;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .navbar .nav-item .nav-link:hover,
  .navbar .nav-item .nav-link:active {
    color: #c5a059; /* Cambio a dorado al tocar */
    background-color: rgba(197, 160, 89, 0.05); /* Sutil fondo dorado */
    border-left: 4px solid #c5a059; /* Indicador lateral de selección */
    padding-left: 35px; /* Efecto de desplazamiento al interactuar */
    text-decoration: none;
  }

  /* Ajuste para el menú de categorías en móvil */
  .navbar .navbar-categories-dropdown .dropdown-menu {
    border: none;
    box-shadow: none;
    background: transparent;
    padding-left: 20px;
  }
}@media (max-width: 991px) {
  .navbar {
    padding: 0 15px;
  }
  .navbar .navbar-order {
    order: 3;
  }
  .navbar .navbar-order:nth-child(1) {
    order: 2;
  }
  .navbar .navbar-order:nth-child(2) {
    order: 1;
  }
  .navbar .navbar-order .nav-notify-cart-dropdown svg {
    width: 14px !important;
    height: 14px !important;
  }
  .navbar .navbar-order .nav-notify-cart-dropdown .dropdown .badge {
    width: 16px !important;
    height: 16px !important;
    font-size: 0.7rem;
  }
  .navbar .navbar-toggle-content {
    position: fixed;
    top: 110%;
    right: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 501;
    display: block !important;
    background-color: #ffffff;
    transition: top 0.4s cubic-bezier(0.43, 0.83, 0.54, 1.02), opacity 0.4s linear;
    border-radius: 0;
    padding: 20px;
  }
  .navbar .navbar-toggle-content.show {
    top: 0;
  }
  .has-fixed-top-floating-bar .navbar .navbar-toggle-content {
    padding-top: 64px !important;
  }
  .navbar .navbar-nav > li {
    width: 100%;
    padding: 8px 0;
  }
  .navbar .navbar-nav > li .nav-link {
    text-align: left;
  }
  .rtl .navbar .navbar-nav > li .nav-link {
    text-align: right;
  }
}

.navbar-brand {
  width: 300px;
  height: 100px;
}
@media (max-width: 991px) {
  .navbar-brand {
    width: 88px;
    max-width: 88px;
    margin-right: 0;
  }
  .navbar-brand img {
    height: auto !important;
  }
}

.menu-category > ul > li {
  position: relative;
  border-radius: 10px;
  font-weight: 500;
  color: var(--secondary);
}
@media (min-width: 991px) {
  .menu-category > ul > li {
    background-color: #fff;
    padding: 12px 25px 12px 15px;

  }
}
@media (max-width: 991px) {
  .menu-category > ul > li {
    flex-direction: column;
  }
}
.menu-category > ul > li a {
  font-size: 14px;
  color: #171347;
  font-weight: 500;
  transition: all 0.3s;
}
.menu-category > ul > li a:hover {
  color: var(--primary);
}
.menu-category > ul > li .cat-dropdown-menu {
  position: absolute;
  left: 0;
  top: 65px;
  width: -moz-max-content;
  width: max-content;
  background-color: #fff;
  display: block;
  padding: 30px 25px;
  border-radius: 15px;
  transition: all 0.3s;
  box-shadow: 0 3px 15px 0 rgba(0, 0, 0, 0.16);
  opacity: 0;
  visibility: hidden;
  z-index: 1;
}
.rtl .menu-category > ul > li .cat-dropdown-menu {
  left: auto;
  right: 0;
}
.rtl .menu-category > ul > li .cat-dropdown-menu:after {
  left: auto !important;
  right: 30px !important;
}
.rtl .menu-category > ul > li .cat-dropdown-menu .feather-chevron-right {
  transform: rotateY(180deg);
}
@media (max-width: 991px) {
  .menu-category > ul > li .cat-dropdown-menu {
    width: 100%;
    position: relative;
    box-shadow: none;
    top: 10px;
    display: none;
  }
}
.menu-category > ul > li .cat-dropdown-menu .cat-dropdown-menu-icon {
  width: 25px;
  max-width: 25px;
  min-width: 25px;
}
.menu-category > ul > li .cat-dropdown-menu > li {
  margin-bottom: 18px;
  position: relative;
}
.menu-category > ul > li .cat-dropdown-menu > li:last-child {
  margin-bottom: 0;
}
.menu-category > ul > li .cat-dropdown-menu > li > a {
  display: -ms-flex;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 0;
}
.menu-category > ul > li .cat-dropdown-menu > li .sub-menu {
  position: absolute;
  top: -24px;
  left: 96%;
  width: 280px;
  background-color: #fff;
  padding: 30px 25px;
  border-radius: 15px;
  transition: all 0.3s;
  box-shadow: 0 3px 15px 0 rgba(0, 0, 0, 0.16);
  visibility: hidden;
  opacity: 0;
  max-height: 360px;
  overflow-y: auto;
}
.rtl .menu-category > ul > li .cat-dropdown-menu > li .sub-menu {
  left: auto;
  right: 96%;
}
@media (max-width: 991px) {
  .menu-category > ul > li .cat-dropdown-menu > li .sub-menu {
    position: relative;
    left: 0 !important;
    top: 4px;
    width: 100%;
    box-shadow: none;
    display: none;
  }
}
.menu-category > ul > li .cat-dropdown-menu > li .sub-menu li {
  margin-bottom: 15px;
}
.menu-category > ul > li .cat-dropdown-menu > li .sub-menu li:last-child {
  margin-bottom: 0;
}
.menu-category > ul > li .cat-dropdown-menu > li .sub-menu li a {
  color: #171347;
  text-transform: capitalize;
  position: relative;
  display: inline-block;
  padding-right: 0;
  padding-left: 0;
  padding-bottom: 0;
  /*&:after {
      width: 0;
      height: 1px;
      position: absolute;
      content: '';
      bottom: 1px;
      right: 0;
      background-color: var(--primary);
      -webkit-transition: all 0.3s;
      -moz-transition: all 0.3s;
      -ms-transition: all 0.3s;
      -o-transition: all 0.3s;
      transition: all 0.3s;
  }*/
}
.menu-category > ul > li .cat-dropdown-menu > li .sub-menu li a:hover {
  color: var(--primary);
}
.menu-category > ul > li .cat-dropdown-menu > li .sub-menu li a:hover:after {
  width: 100%;
  right: auto;
  left: 0;
}
.menu-category > ul > li .cat-dropdown-menu > li .sub-menu.active {
  display: block;
}
.menu-category > ul > li .cat-dropdown-menu > li:hover .sub-menu {
  opacity: 1;
  visibility: visible;
  left: calc(100% + 25px);
}
.rtl .menu-category > ul > li .cat-dropdown-menu > li:hover .sub-menu {
  left: auto;
  right: calc(100% + 25px);
}
.menu-category > ul > li .cat-dropdown-menu:after {
  top: -6px;
  content: "";
  position: absolute;
  background-color: #fff;
  left: 30px;
  width: 13px;
  height: 13px;
  transform: rotate(45deg);
  box-shadow: -2px -2px 10px -5px rgba(0, 0, 0, 0.2);
  border-top: 1px solid rgba(127, 136, 151, 0.2);
  border-left: 1px solid rgba(127, 136, 151, 0.2);
}
@media (max-width: 991px) {
  .menu-category > ul > li .cat-dropdown-menu:after {
    display: none;
  }
}
.menu-category > ul > li.show-items .cat-dropdown-menu {
  opacity: 1;
  visibility: visible;
  top: 43px;
}
@media (max-width: 991px) {
  .menu-category > ul > li.xs-categories-toggle.show-items .cat-dropdown-menu {
    display: block;
    opacity: 1 !important;
    visibility: visible !important;
    top: 0 !important;
  }
  .menu-category > ul > li.xs-categories-toggle.show-items .cat-dropdown-menu .show-sub-menu .sub-menu {
    display: block;
    opacity: 1 !important;
    visibility: visible !important;
    top: 0 !important;
  }
  .rtl .menu-category > ul > li.xs-categories-toggle.show-items .cat-dropdown-menu .show-sub-menu .sub-menu {
    right: 0 !important;
  }
}

.main-menu > ul > li:hover .dropdown-menu-item {
  opacity: 1;
  visibility: visible;
  top: 50px;
}

.login-container {
  margin: 120px 0 70px;
  border-radius: 15px;
  border: solid 1px #ececec;
}
.login-container img {
  border-radius: 10px 0 0 10px;
}
@media (max-width: 991px) {
  .login-container {
    margin: 60px 0 70px;
  }
}

.login-card {
  padding: 75px 45px 75px 45px;
}

.social-login {
  border-radius: 8px;
  border: solid 1px #ececec;
  background-color: #ffffff;
  font-size: 0.875rem;
}
.social-login:hover {
  background-color: #f1f1f1;
  transition: all 0.3s ease;
}

.overlay-avatars {
  position: relative;
}
.overlay-avatars__item, .overlay-avatars__count {
  margin-left: -20px;
  border: solid 2px #f1f1f1;
  background-color: #fff;
}
.rtl .overlay-avatars__item, .rtl .overlay-avatars__count {
  margin-left: 0;
  margin-right: -20px;
}
.overlay-avatars__item:first-child {
  margin-left: 0;
}

.footer {
  margin-top: 205px;
}
.footer .footer-subscribe {
  position: relative;
  top: -100px;
  height: 200px;
  background-image: url("/assets/default/img/footer/pattern.png");
background: linear-gradient(90deg, rgb(57, 0, 175), rgb(100, 200, 255));
  border-radius: 15px;
  padding: 25px;
}
@media (max-width: 767px) {
  .footer .footer-subscribe {
    height: auto;
  }
}
.footer .footer-subscribe strong {
  font-size: 30px;
  font-weight: bold;
  line-height: 1.22;
  color: #ffffff;
  pointer-events: none;
}
.footer .footer-subscribe .subscribe-input {
  border-radius: 38px;
  box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.1);
}
.footer ul li {
  font-size: 14px;
}
.footer ul li a {
  color: #ffffff !important;
}
.footer ul li.header {
  font-size: 16px;
}

.footer .footer-logo {
  width: 170px;
  height: 150px;
}

.footer-social img {
    width: 24px;
    min-width: 24px;
    max-width: 24px;
    height: 24px;
}  

/* =========================================
   AULÓPOLIS FOOTER SOCIALS — NUEVO SISTEMA
========================================= */

.aulo-footer-socials {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    margin-top: -10px !important;
    margin-bottom: 22px !important;
    margin-right:80% !important;

}

.aulo-social-link {
    position: relative !important;

    width: 52px !important;
    height: 52px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 18px !important;

    background:
        linear-gradient(
            180deg,
            rgba(15, 23, 42, 0.96),
            rgba(2, 6, 23, 0.88)
        ) !important;

    border: 1px solid rgba(34, 211, 238, 0.22) !important;

    box-shadow:
        inset 0 0 18px rgba(255, 255, 255, 0.035),
        0 12px 34px rgba(0, 0, 0, 0.42) !important;

    overflow: hidden !important;

    text-decoration: none !important;

    transition:
        transform .35s cubic-bezier(.2, .8, .2, 1),
        border-color .35s ease,
        box-shadow .35s ease,
        background .35s ease !important;
}

.aulo-social-glow {
    position: absolute !important;
    inset: 0 !important;

    background:
        radial-gradient(
            circle at 50% 20%,
            rgba(34, 211, 238, 0.34),
            transparent 54%
        ) !important;

    opacity: 0 !important;
    transition: opacity .35s ease !important;
}

.aulo-social-icon {
    position: relative !important;
    z-index: 2 !important;

    width: 23px !important;
    min-width: 23px !important;
    max-width: 23px !important;
    height: 23px !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: contain !important;

    opacity: .94 !important;

    filter:
        brightness(0)
        invert(1)
        drop-shadow(0 0 7px rgba(34, 211, 238, .50)) !important;

    transition:
        transform .35s cubic-bezier(.2, .8, .2, 1),
        filter .35s ease,
        opacity .35s ease !important;
}

.aulo-social-link:hover {
    transform: translateY(-6px) scale(1.07) !important;

    border-color: rgba(34, 211, 238, .75) !important;

    background:
        linear-gradient(
            180deg,
            rgba(15, 23, 42, 1),
            rgba(8, 47, 73, .95)
        ) !important;

    box-shadow:
        0 0 18px rgba(34, 211, 238, .48),
        0 0 46px rgba(37, 99, 235, .28),
        0 18px 46px rgba(0, 0, 0, .50),
        inset 0 0 20px rgba(255, 255, 255, .06) !important;
}

.aulo-social-link:hover .aulo-social-glow {
    opacity: 1 !important;
}

.aulo-social-link:hover .aulo-social-icon {
    opacity: 1 !important;

    transform: scale(1.14) !important;

    filter:
        brightness(0)
        invert(1)
        drop-shadow(0 0 10px rgba(34, 211, 238, .85))
        drop-shadow(0 0 22px rgba(37, 99, 235, .50)) !important;
}

.aulo-social-link:active {
    transform: translateY(-2px) scale(.98) !important;
}

/* Mobile */
@media (max-width: 768px) {
    .aulo-footer-socials {
        display: flex !important;
        flex-direction: row !important;
        justify-content: center !important;
        align-items: center !important;

        width: 100% !important;
        gap: 18px !important;
        margin: 18px auto 0 auto !important;

        flex-wrap: nowrap !important;
        text-align: center !important;
    }

    .aulo-footer-socials a {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        flex: 0 0 auto !important;
    }


    .aulo-social-link {
        width: 46px !important;
        height: 46px !important;
        border-radius: 16px !important;
    }

    .aulo-social-icon {
        width: 21px !important;
        min-width: 21px !important;
        max-width: 21px !important;
        height: 21px !important;
    }
}

.footer .border-blue {
  border-top: 1px solid #305995;
}
.footer .footer-copyright-card {
  position: relative;
  background-color: transparent;
}
.footer .footer-copyright-card .container {
  position: relative;
  z-index: 2;
  background-color: transparent;
}
.footer .footer-copyright-card:before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.15;
  background-color: #000;
  z-index: 1;
}

.time-counter-down .time-item {
  width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.time-counter-down .time-item:last-child {
  margin-right: 0;
}

.shadow-effect {
  background: #fff;
  padding: 20px;
  border-radius: 10px;
  text-align: center;
  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.05), 0 15px 12px rgba(0, 0, 0, 0.02);
}
@media (max-width: 991px) {
  .shadow-effect {
    padding: 20px 10px;
  }
}

.customers-testimonials .shadow-effect p {
  font-family: inherit;
  font-size: 12px;
  line-height: 1.5;
  margin: 0 0 17px 0;
  font-weight: 300;
}
.customers-testimonials .item {
  text-align: center;
  margin-bottom: 70px;
  opacity: 0.65;
  transform: scale3d(0.8, 0.8, 1);
  transition: all 0.3s ease-in-out;
}
@media (max-width: 991px) {
  .customers-testimonials .item {
    padding: 0 15px;
  }
}
.customers-testimonials .owl-item.active.center .item {
  opacity: 1;
  transform: scale3d(1, 1, 1);
}

.customers-testimonials.owl-carousel .owl-dots {
  display: inline-block;
  width: 100%;
  text-align: center;
}
.customers-testimonials.owl-carousel .owl-dots .owl-dot.active span {
  background: var(--primary);
  transform: translate3d(0px, -50%, 0px);
  border-width: 3px;
}
.customers-testimonials.owl-carousel .owl-dots .owl-dot {
  display: inline-block;
}
.customers-testimonials.owl-carousel .owl-dots .owl-dot:hover span {
  background: var(--primary);
  transform: translate3d(0px, -50%, 0px);
  border-width: 3px;
}
.customers-testimonials.owl-carousel .owl-dots .owl-dot span {
  border-radius: 50px;
  background: #ffffff;
  border: solid 1px #d4d4d4;
  display: inline-block;
  height: 20px;
  width: 20px;
  margin: 0 2px 5px;
  transform: translate3d(0px, -50%, 0px);
  transform-origin: 50% 50% 0;
  transition: all 250ms ease-out 0s;
}
@media (max-width: 767px) {
  .customers-testimonials.owl-carousel .owl-dots .owl-dot span {
    width: 15px;
    height: 15px;
  }
}

.custom-pagination {
  border-radius: 30px;
  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.05);
  border: solid 1px #ececec;
  background-color: #ffffff;
  padding: 6px 8px;
}
.custom-pagination li {
  margin-right: 10px;
  border-radius: 50px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.custom-pagination li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: transparent;
  border-radius: 50%;
  font-size: 16px;
  color: #818894;
  transition: all 0.3s ease;
}
.custom-pagination li a:hover {
  background-color: var(--primary);
  color: #ffffff;
  transition: all 0.3s ease;
}
.custom-pagination li a.active {
  border: solid 1px var(--primary);
  background-color: var(--primary);
  color: #ffffff;
}
@media (max-width: 767px) {
  .custom-pagination li {
    margin-right: 8px;
    width: 40px;
    height: 40px;
  }
  .custom-pagination li a {
    font-size: 14px;
  }
}
.custom-pagination li span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}
.custom-pagination li span.active {
  border: solid 1px var(--primary);
  background-color: var(--primary);
  color: #ffffff;
}
.custom-pagination li:last-child {
  margin-right: 0;
}
.custom-pagination li.disabled {
  border: solid 1px #ececec !important;
  cursor: not-allowed;
  color: #ececec;
}
.custom-pagination .previous, .custom-pagination .next {
  border: solid 1px var(--primary);
}
.rtl .custom-pagination .previous, .rtl .custom-pagination .next {
  transform: rotate(180deg);
}

.mask {
  content: "";
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  z-index: 1;
}

.slider-container {
  position: relative;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  padding: 250px 0 350px 0;
}
.slider-container.slider-hero-section2 {
  padding: 100px 0 150px 0;
}
@media (max-width: 991px) {
  .slider-container, .slider-container.slider-hero-section2 {
    padding: 60px 0 100px 0;
  }
}
.slider-container #homeHeroVideoBackground {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.slider-container .slider-content {
  position: relative;
  z-index: 5;
}
.slider-container .slider-content h1 {
  font-size: 44px;
  line-height: 1.5;
  color: #ffffff;
  pointer-events: none;
}
@media (max-width: 991px) {
  .slider-container .slider-content h1 {
    font-size: 30px;
  }
}
.slider-container .slider-content .slide-hint {
  font-size: 25px;
  font-weight: normal;
  line-height: 1.25;
  color: #ffb200; 
  background: #3900af;
  padding: 16px 24px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(4px);
  max-width: 80%;
  margin: 0 auto;
  text-align: center;

  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.slider-container .slider-content .slide-hint:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}


@media (max-width: 991px) {
  .slider-container .slider-content .slide-hint {
    font-size: 14px;
  }
}
.slider-container .slider-content .slider-search {
  border-radius: 38px;
  box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.1);
}
.slider-container .slider-content.hero-section2 h1 {
  font-size: 44px;
  font-weight: 700;
  color: #00ff99;
  text-align: center;
  position: relative;
  pointer-events: none;
  text-shadow: 0 0 5px #00ff99, 0 0 10px #00ff99, 0 0 20px #00ff99;
  overflow: hidden;
  z-index: 1;
}

.slider-container .slider-content.hero-section2 h1::before {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: #00ff99;
  text-shadow: 0 0 3px #00ff99, 0 0 8px #00ff99;
  clip-path: polygon(0 0, 100% 0, 100% 5%, 0 5%);
  animation: glitch 1s infinite linear alternate-reverse;
  z-index: 2;
}

.slider-container .slider-content.hero-section2 h1::after {
  content: "";
  position: absolute;
  top: -100%;
  left: 0;
  width: 100%;
  height: 300%;
  background: repeating-linear-gradient(
    transparent,
    rgba(0, 255, 153, 0.05) 2px,
    transparent 4px
  );
  animation: rain 1.5s linear infinite;
  z-index: 0;
  pointer-events: none;
}

@keyframes glitch {
  0% {
    clip-path: polygon(0 2%, 100% 2%, 100% 6%, 0 6%);
  }
  20% {
    clip-path: polygon(0 15%, 100% 15%, 100% 20%, 0 20%);
  }
  40% {
    clip-path: polygon(0 40%, 100% 40%, 100% 45%, 0 45%);
  }
  60% {
    clip-path: polygon(0 65%, 100% 65%, 100% 68%, 0 68%);
  }
  80% {
    clip-path: polygon(0 80%, 100% 80%, 100% 83%, 0 83%);
  }
  100% {
    clip-path: polygon(0 95%, 100% 95%, 100% 100%, 0 100%);
  }
}

@keyframes rain {
  to {
    top: 100%;
  }
}

@media (max-width: 991px) {
  .slider-container .slider-content.hero-section2 h1 {
    font-size: 30px;
  }
}

.stats-container {
  position: relative;
  top: -100px;
  z-index: 8;
}

.stats-container.page-has-hero-section-2 {
  top: 0;
}

.stats-container .stats-item {
  position: relative;
  border-radius: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  background: #3900af; /* azul oscuro elegante */
  transition: all 0.4s ease;
  padding: 50px 30px;
  text-align: center;
}

.stats-container .stats-item .stat-number {
  font-size: 50px;
  font-weight: 800;
  color: #ffffff;
  margin-bottom: 15px;
}

.stats-container .stats-item .stat-title {
  font-size: 20px;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 10px;
}

.stats-container .stats-item .stat-desc {
  font-size: 14px;
  color: #ffffff;
  opacity: 0.8;
  line-height: 1.5;
}

.stats-container .stats-item:hover {
  transform: translateY(-10px);
  background: #ffb200; /* azul más brillante al hover */
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
}

.swiper-pagination {
  bottom: -50px;
  transform: translate(0, 50%) !important;
}
@media (max-width: 991px) {
  .swiper-pagination {
    bottom: unset;
  }
  .swiper-pagination.features-swiper-pagination {
    bottom: -20px;
  }
}
.swiper-pagination .swiper-pagination-bullet {
  position: relative;
  width: 20px;
  height: 20px;
  margin-right: 20px;
  padding: 4px;
  background: #ffffff !important;
  border: solid 1px #d4d4d4;
  opacity: 1 !important;
}
.rtl .swiper-pagination .swiper-pagination-bullet {
  margin-right: 0;
  margin-left: 20px;
}
@media (max-width: 767px) {
  .swiper-pagination .swiper-pagination-bullet {
    width: 15px;
    height: 15px;
    margin-right: 10px;
  }
}
.swiper-pagination .swiper-pagination-bullet:last-child {
  margin-right: 0;
}
.rtl .swiper-pagination .swiper-pagination-bullet:last-child {
  margin-right: auto;
  margin-left: 0;
}
.swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active:after {
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 50px;
  background-color: var(--primary);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media (max-width: 767px) {
  .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active:after {
    width: 8px;
    height: 8px;
  }
}

.feature-slider {
  border-radius: 15px;
  background-repeat: no-repeat;
  background-size: cover;
  -o-object-fit: contain;
     object-fit: contain;
}
.feature-slider .mask {
  opacity: 0.4;
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.25), #000000);
  border-radius: 15px;
}
.feature-slider .feature-slider-card {
  width: auto;
  max-width: 435px;
}
.feature-slider .feature-slider-body {
  border-radius: 15px;
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
  background-color: #ffffff;
  padding: 10px;
  z-index: 5;
}
.feature-slider .feature-slider-body .card-title {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.2;
  color: #171347;
}
@media (max-width: 991px) {
  .feature-slider .feature-slider-body .card-title {
    font-size: 16px;
  }
}
.feature-slider .feature-desc {
  pointer-events: none;
}
.feature-slider .feature-footer .feature-price-box {
  border-radius: 10px;
  box-shadow: 0 3px 6px 0 rgba(64, 213, 125, 0.26);
  background-color: var(--primary);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.22;
  color: #ffffff;
  padding: 10px 15px;
  pointer-events: none;
}

.vertical-line {
  border-left: solid 2px #ececec;
}

.stars-card {
  min-height: 20px;
}
.stars-card svg {
  margin-right: 3px;
  color: #818894;
}
.stars-card svg.active {
  color: #ffc600;
  fill: #ffc600;
}
.stars-card i.active svg {
  color: #ffc600;
  fill: #ffc600;
}

.user-inline-avatar .avatar {
  width: 40px;
  max-width: 40px;
  min-width: 40px;
  height: 40px;
  border-radius: 50%;
}
.user-inline-avatar .avatar img {
  border-radius: 50%;
}
.user-inline-avatar .user-name {
  font-weight: 500;
  line-height: 1.19;
  color: #818894;
}

.home-sections {
  position: relative;
  margin-top: 120px;
}
.home-sections:first-child {
  margin-top: 80px;
}
@media (max-width: 991px) {
  .home-sections {
    margin-top: 80px;
  }
}
.home-sections .section-title {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.5;
  color: #fff;
  pointer-events: none;
}
@media (max-width: 991px) {
  .home-sections .section-title {
    font-size: 18px;
  }
}
.home-sections .section-hint {
  margin-top: 5px;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.5;
  color: #818894;
  pointer-events: none;
}
@media (max-width: 991px) {
  .home-sections .section-hint {
    font-size: 14px;
  }
}

.gradient-box {
  direction: ltr;
  position: absolute !important;
  border-radius: 30px;
  background-image: linear-gradient(to bottom, #9effc1, var(--primary));
}
@media (max-width: 767px) {
  .gradient-box {
    border-radius: 10px;
  }
}

.subscribes-container .left-gradient-box {
  top: 13% !important;
  left: 1% !important;
  width: 150px;
  height: 150px;
  opacity: 0.66;
  transform: rotate(45deg);
}
@media (min-width: 767px) and (max-width: 991px) {
  .subscribes-container .left-gradient-box {
    width: 80px;
    height: 80px;
  }
}
@media (max-width: 767px) {
  .subscribes-container .left-gradient-box {
    width: 40px;
    height: 40px;
  }
}
.subscribes-container #parallax5 {
  transform: translate3d(0px, 0px, 0px) rotate(144deg) !important;
}
.subscribes-container .right-gradient-box {
  right: 3% !important;
  bottom: 10% !important;
  top: auto !important;
  width: 130px;
  height: 130px;
  opacity: 0.66;
  transform: rotate(45deg);
}
@media (min-width: 767px) and (max-width: 991px) {
  .subscribes-container .right-gradient-box {
    width: 75px;
    height: 75px;
  }
}
@media (max-width: 767px) {
  .subscribes-container .right-gradient-box {
    width: 30px;
    height: 30px;
  }
}
.subscribes-container .bottom-gradient-box {
  left: 14% !important;
  bottom: 0 !important;
  top: auto !important;
  width: 250px;
  height: 250px;
  opacity: 0.66;
  transform: rotate(45deg);
}
@media (min-width: 767px) and (max-width: 991px) {
  .subscribes-container .bottom-gradient-box {
    width: 150px;
    height: 150px;
  }
}
@media (max-width: 767px) {
  .subscribes-container .bottom-gradient-box {
    width: 50px;
    height: 50px;
  }
}

.testimonials-container .left-gradient-box {
  top: 13% !important;
  left: 10% !important;
  width: 202px;
  height: 202px;
  opacity: 0.66;
}
@media (min-width: 767px) and (max-width: 991px) {
  .testimonials-container .left-gradient-box {
    width: 100px;
    height: 100px;
  }
}
@media (max-width: 767px) {
  .testimonials-container .left-gradient-box {
    width: 40px;
    height: 40px;
  }
}
.testimonials-container #parallax2 {
  transform: translate3d(0px, 0px, 0px) rotate(144deg) !important;
}
.testimonials-container .right-gradient-box {
  top: auto !important;
  right: 13% !important;
  bottom: 10% !important;
  width: 195px;
  height: 195px;
  opacity: 0.66;
  transform: rotate(45deg);
}
@media (min-width: 767px) and (max-width: 991px) {
  .testimonials-container .right-gradient-box {
    width: 95px;
    height: 95px;
  }
}
@media (max-width: 767px) {
  .testimonials-container .right-gradient-box {
    width: 30px;
    height: 30px;
  }
}
.testimonials-container .bottom-gradient-box {
  top: auto !important;
  left: -200px !important;
  bottom: 0 !important;
  width: 270px;
  height: 270px;
  opacity: 0.66;
  transform: rotate(45deg);
}
@media (min-width: 767px) and (max-width: 991px) {
  .testimonials-container .bottom-gradient-box {
    width: 150px;
    height: 150px;
  }
}
@media (max-width: 767px) {
  .testimonials-container .bottom-gradient-box {
    width: 50px;
    height: 50px;
  }
}
.testimonials-container .testimonials-card {
  margin-top: 105px;
  pointer-events: none;
}
.testimonials-container .testimonials-card .bottom-gradient {
  position: absolute;
  top: unset;
  bottom: 0;
  left: 0;
  right: 0;
  border-radius: 0 0 10px 10px;
  height: 11px;
  background: linear-gradient(to left, #9effc1, var(--primary));
}
.testimonials-container .testimonials-card .testimonials-user-avatar {
  position: absolute;
  top: -40px;
  width: 80px;
  height: 80px;
}

.trending-card {
  position: relative;
  transition: all 0.5s ease;
}
.trending-card .trending-image {
  padding: 27px 0;
  border-radius: 20px;
}
.trending-card .trending-image .icon {
  width: 85px;
  height: 85px;
}
.trending-card .item-count {
  position: relative;
  top: -20px;
  border-radius: 25px;
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
  font-size: 14px;
}
.trending-card h3 {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.19;
  color: #171347;
}
.trending-card:hover {
  transform: translateY(-25px);
  transition: all 0.5s ease;
}
.trending-card:hover .item-count {
  background-color: var(--secondary);
  color: #ffffff;
  transition: all 0.5s ease;
}
@media (max-width: 767px) {
  .trending-card .trending-image {
    padding: 25px;
  }
  .trending-card .trending-image .icon {
    width: 60px;
    height: 60px;
  }
}

.home-video-mask {
  position: absolute;
  height: 300px;
  border: solid 1px #707070;
  background-color: var(--secondary);
  width: 100%;
  top: 50%;
  transform: translate(0, -50%);
}
@media (max-width: 767px) {
  .home-video-mask {
    height: 100%;
  }
}

.home-video-container {
  padding-top: 194px;
  padding-bottom: 94px;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 15px;
}
@media (max-width: 991px) {
  .home-video-container {
    padding-top: 94px;
  }
}
@media (max-width: 767px) {
  .home-video-container {
    background-size: contain;
    border-radius: 0;
  }
}
.home-video-container .home-video-play-button {
  width: 147px;
  height: 147px;
  box-shadow: 0 20px 12px 0 rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
  border-radius: 50%;
  cursor: pointer;
  z-index: 22;
}
.home-video-container .home-video-play-button:after, .home-video-container .home-video-play-button:before {
  content: "";
  position: absolute;
  height: 100%;
  width: 100%;
  background-color: #ffffff;
  opacity: 0.4;
  z-index: -1;
  border-radius: 50%;
}
.home-video-container .home-video-play-button:before {
  animation: pluse 2s ease-out infinite;
}
.home-video-container .home-video-play-button:after {
  animation: pluse 2s 1s ease-out infinite;
}
@media (max-width: 991px) {
  .home-video-container .home-video-play-button {
    width: 75px;
    height: 75px;
  }
  .home-video-container .home-video-play-button .feather-play {
    width: 25px;
    height: 25px;
  }
}
.home-video-container .home-video-title {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.22;
  color: #ffffff;
}
.home-video-container .home-video-hint {
  font-size: 16px;
  font-weight: normal;
  line-height: 1.19;
  color: #ffffff;
  pointer-events: none;
}

@keyframes pluse {
  100% {
    transform: scale(2.5);
    opacity: 0;
  }
}
.user-search-card .user-avatar {
  width: 135px;
  height: 135px;
  border-radius: 50%;
  box-shadow: 0 5px 8px 0 rgba(0, 0, 0, 0.1);
}

.home-organizations-card {
  padding: 15px 25px 30px;
  border-radius: 15px;
  box-shadow: 0 6px 15px 0 rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
  text-align: center;
  transition: all 0.5s ease;
}
.home-organizations-card .home-organizations-avatar {
  width: 120px;
  height: 120px;
  border-radius: 50%;
}
.home-organizations-card .home-organizations-title {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.2;
  color: #171347;
  transition: all 0.5s ease;
}
.home-organizations-card .home-organizations-badge, .home-organizations-card .home-organizations-desc {
  font-size: 12px;
  font-weight: normal;
  line-height: 1.19;
  color: #818894;
  transition: all 0.5s ease;
}
.home-organizations-card .home-organizations-badge {
  border-radius: 15px;
  background-color: #f1f1f1;
  padding: 5px 10px;
  transition: all 0.5s ease;
}
.home-organizations-card:hover {
  transform: translateY(-10px);
  background-color: var(--secondary);
  box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.2);
  transition: all 0.5s ease;
}
.home-organizations-card:hover .home-organizations-title, .home-organizations-card:hover .home-organizations-desc {
  color: #ffffff;
  transition: all 0.5s ease;
}
.home-organizations-card:hover .home-organizations-badge {
  background-color: #ffffff;
  color: var(--secondary);
  transition: all 0.5s ease;
}

.instructors-swiper-container .instructors-card .instructors-card-avatar {
  width: 135px;
  height: 135px;
}
.instructors-swiper-container .swiper-slide {
  margin-top: 33px;
}
.instructors-swiper-container .swiper-slide.swiper-slide-active {
  margin-top: 0;
}
.instructors-swiper-container .swiper-slide.swiper-slide-active .instructors-card .instructors-card-avatar {
  width: 200px;
  height: 200px;
}
.instructors-swiper-container .swiper-slide.swiper-slide-active .instructors-card .instructors-card-avatar img {
  opacity: 1;
}
.instructors-swiper-container .swiper-slide.swiper-slide-active .instructors-card .instructors-card-info {
  display: block;
}

.find-instructor-section .find-instructor-section-hero {
  max-width: 500px;
  max-height: 560px;
  border-radius: 40px 4px 40px 4px;
  box-shadow: 0 30px 60px 0 rgba(1, 11, 60, 0.14);
}
.find-instructor-section .find-instructor-section-circle, .find-instructor-section .find-instructor-section-dots {
  position: absolute;
  z-index: -1;
}
.find-instructor-section .find-instructor-section-circle {
  top: -50px;
  right: 10%;
}
.find-instructor-section .find-instructor-section-dots {
  bottom: -25px;
  left: -30px;
  animation: hero-dot 5s linear 0s infinite alternate;
}
.find-instructor-section .example-instructor-card {
  position: absolute;
  bottom: 50px;
  right: -15px;
  z-index: 2;
  animation-duration: 4s;
  animation-fill-mode: both;
  animation-iteration-count: infinite;
  animation-name: hero-bounce;
}
.find-instructor-section .example-instructor-card .example-instructor-card-avatar {
  width: 54px;
  height: 54px;
  border-radius: 50%;
}
@media (max-width: 767px) {
  .find-instructor-section .find-instructor-section-hero {
    max-width: 250px;
    max-height: 270px;
  }
  .find-instructor-section .example-instructor-card {
    right: -5px;
  }
}

.reward-program-section {
  border-radius: 30px;
  background-color: #f7fafd;
}
.reward-program-section .reward-program-section-hero-card {
  height: 350px;
}
.reward-program-section .reward-program-section-hero-card .reward-program-section-hero {
  position: absolute;
  height: 390px;
  width: 100%;
  left: -70px;
  top: -20px;
}
@media (max-width: 991px) {
  .reward-program-section .reward-program-section-hero-card {
    height: auto;
  }
  .reward-program-section .reward-program-section-hero-card .reward-program-section-hero {
    position: relative;
    top: 0;
    left: 0;
    height: auto;
  }
}
.reward-program-section .reward-program-section-dots {
  position: absolute;
  top: 25px;
  left: 30px;
  z-index: 1;
  animation: hero-dot 5s linear 0s infinite alternate;
}
.reward-program-section .example-reward-card {
  position: absolute;
  bottom: 50px;
  right: 15%;
  z-index: 2;
  animation-duration: 6s;
  animation-fill-mode: both;
  animation-iteration-count: infinite;
  animation-name: hero-bounce;
}
.reward-program-section .example-reward-card .example-reward-card-medal {
  width: 56px;
  height: 56px;
  border-radius: 50%;
}

@keyframes hero-dot {
  0% {
    transform: translateY(-100px);
  }
  100% {
    transform: translateY(0px);
  }
}
@keyframes hero-bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-30px);
  }
  60% {
    transform: translateY(-15px);
  }
}
.become-instructor-packages .default-package-icon {
  width: 176px;
  min-width: 176px;
  height: 143px;
}
.become-instructor-packages .default-package-icon img {
  width: 100%;
  height: 100%;
}
.become-instructor-packages .default-package-statistics-icon {
  width: 32px;
  height: 32px;
}
.become-instructor-packages .default-package-statistics-icon img {
  width: 100%;
  height: 100%;
}

.blog-grid-card {
  border-radius: 15px;
  box-shadow: 0 5px 12px 0 rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
  transition: all 0.5s ease;
}
.blog-grid-card .blog-grid-image {
  position: relative;
  width: 100%;
  height: 250px;
}
.blog-grid-card .blog-grid-image img {
  border-radius: 15px 15px 0 0;
}
.blog-grid-card .blog-grid-image::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 60%;
  bottom: 0;
  background-image: linear-gradient(to bottom, rgba(6, 6, 6, 0), rgba(0, 0, 0, 0.8));
  z-index: 1;
}.blog-grid-card {
  border-radius: 15px;
  box-shadow: 0 5px 12px 0 rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
  transition: all 0.5s ease;
}
.blog-grid-card .blog-grid-image {
  position: relative;
  width: 100%;
  height: 250px;
  font-size: 12px;
  font-weight: normal;
  line-height: 1.29;
  color: #ffffff;
  padding: 8px 15px;
  border-radius: 15px 3px 15px 3px;
  pointer-events: none;
  margin-top: 8px;
  margin-right: 8px;
  color: #ffffff;
  padding: 8px 15px;
  border-radius: 15px 3px 15px 3px;
  pointer-events: none;
  margin-top: 8px;
  margin-right: 8px;
}

.blog-grid-card .blog-grid-image img {
  border-radius: 15px 15px 0 0;
  transition: transform 0.5s ease-in-out;
}

.blog-grid-card:hover .blog-grid-image img {
  transform: scale(1.2); /* Aumenta el valor para más zoom */
}



.rtl .blog-grid-card .blog-grid-image .badges-lists {
  left: auto;
  right: 7px;
}
.rtl .blog-grid-card .blog-grid-image .badges-lists .badge {
  margin-right: 0;
  margin-left: 8px;
}
.blog-grid-card .blog-grid-image .created-at {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.19;
  color: #ffffff;
  border-radius: 20px;
  padding: 10px 15px;
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.1);
background: linear-gradient(90deg, rgb(57, 0, 175), rgb(100, 200, 255));
  position: absolute;
  bottom: -16px;
  right: 25px;
  transition: all 0.5s ease;
  z-index: 2;
}
.blog-grid-card .blog-grid-detail {
  padding: 24px 15px;
}
.blog-grid-card .blog-grid-detail .blog-grid-title {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.2;
  color: #171347;
}
.blog-grid-card .blog-grid-detail .blog-grid-desc {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.29;
  color: #818894;
  height: 85px;
  border-bottom: 1px solid #ececec;
  overflow: hidden;
  pointer-events: none;
}
.blog-grid-card .blog-grid-detail .blog-grid-footer {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.19;
  color: #818894;
  pointer-events: none;
}
.blog-grid-card:hover {
  transform: translateY(-25px);
  box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.1);
  transition: all 0.5s ease;
}
.blog-grid-card:hover .created-at {
  background-color: var(--secondary);
  transition: all 0.5s ease;
}

.popular-post .popular-post-image {
  width: 110px;
  min-width: 110px;
  height: 75px;
}
.popular-post .popular-post-content {
  height: 75px;
}

.post-show p, .post-show span {
  color: #818894;
  margin-top: 15px;
}
.post-show img, .post-show video, .post-show iframe {
  border-radius: 15px;
  max-width: 100% !important;
}
.post-show h1, .post-show h2, .post-show h3 {
  font-size: 20px;
  font-weight: bold;
  color: #171347;
  margin-top: 25px;
}

.contact-info-modal .contact-avatar {
  width: 100px;
  max-width: 100px;
  height: 100px;
  border-radius: 50%;
}
.contact-info-modal .contact-avatar img {
  border-radius: 50%;
}

.contact-us-head {
  padding-top: 120px;
}
@media (max-width: 767px) {
  .contact-us-head {
    padding-top: 60px;
  }
}

.contact-map {
  height: 644px;
  border-radius: 15px;
  z-index: 10;
  position: relative;
  top: -300px;
  margin-bottom: -250px;
}
@media (min-width: 767px) and (max-width: 991px) {
  .contact-map {
    height: 500px;
    top: -230px;
    margin-bottom: -230px;
  }
}
@media (max-width: 767px) {
  .contact-map {
    height: 360px;
    top: -100px;
    margin-bottom: -80px;
  }
}

.contact-items {
  box-shadow: 0 3px 30px 0 rgba(0, 0, 0, 0.1);
}
.contact-items .contact-icon-box {
  border-radius: 24px;
  width: 85px;
  height: 85px;
}
.contact-items .contact-icon-box.box-info {
  background-image: linear-gradient(135deg, #3C8CE7 10%, #00EAFF 100%);
}
.contact-items .contact-icon-box.box-green {
  background-image: linear-gradient(135deg, #11c99c, #00e31d);
}
.contact-items .contact-icon-box.box-red {
  background-image: linear-gradient(135deg, #ff0844 0%, #ffb199 100%);
}

.webinar-card {
  position: relative;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(10px);
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.webinar-card:hover {
  transform: scale(1.05);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
}

.webinar-card .image-box {
  position: relative;
  width: 100%;
  height: 450px;
  overflow: hidden;
}
.webinar-card {
    position: relative;
    overflow: hidden;
    border: none;
    background: transparent; /* Eliminamos cualquier fondo blanco */
}

.image-container {
    position: relative;
    height:400px;
}

.webinar-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: linear-gradient(transparent, rgba(0,0,0,0.7)); /* degradado suave */
    color: #fff;
    padding: 15px;
    box-sizing: border-box;
}

.webinar-overlay h3,
.webinar-overlay a,
.webinar-overlay span {
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
}

.img-cover-banner {
    width: 100%;
    height: 600px;
    display: block;
}

/* Pantallas menores a 768px (tablets y móviles) */
@media (max-width: 768px) {
    .img-cover-banner {
        height: 300px; /* altura reducida para móvil */
    }
}

/* Pantallas muy pequeñas */
@media (max-width: 480px) {
    .img-cover-banner {
        height: 200px;
    }
}
.img-cover-banner2 {
    width: 100%;
    height: 400px;
    display: block;
}

/* Ocultar en pantallas menores a 768px */
@media (max-width: 768px) {
    .img-cover-banner2 {
        display: none;
    }
}

.img-cover1 {
    width: 100%;
    height: 400px;
    display: block;
    object-fit: cover;
    border-radius: 10px;
    overflow: hidden;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.img-cover11 {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 10px;
    overflow: hidden;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.img-cover1:hover {
    transform: scale(1.05);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);
    cursor: pointer;
}


.webinar-card-body {
    display: none; /* OCULTAMOS el bloque original debajo para no dejar franja blanca */
}

.webinar-card .image-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
  border-radius: 20px 20px 0 0;
}

.webinar-card:hover .image-box img {
  transform: scale(1.1);
}

.webinar-card .content {
  padding: 20px;
  color: #fff;
  background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
  position: absolute;
  bottom: 0;
  width: 100%;
}

.webinar-card .content h3 {
  margin: 0;
  font-size: 1.4rem;
  font-weight: bold;
}

.webinar-card .content p {
  margin-top: 8px;
  font-size: 0.9rem;
  color: #ccc;
}

.webinar-card .image-box::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 60%;
  bottom: 0;
  background-image: linear-gradient(to bottom, rgba(6, 6, 6, 0), rgba(0, 0, 0, 0.8));
  z-index: 1;
}
.webinar-card .image-box .badges-lists {
  position: absolute;
  top: 0;
  left: 7px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.webinar-card .image-box .badges-lists .badge {
  font-size: 12px;
  font-weight: normal;
  line-height: 1.29;
  color: #ffffff;
  padding: 8px 15px;
  border-radius: 15px 3px 15px 3px;
  pointer-events: none;
  margin-top: 8px;
  margin-right: 8px;
}
.rtl .webinar-card .image-box .badges-lists {
  left: auto;
  right: 7px;
}
.rtl .webinar-card .image-box .badges-lists .badge {
  margin-right: 0;
  margin-left: 8px;
}
.webinar-card .image-box .progress {
  position: absolute;
  bottom: 12px;
  left: 18px;
  width: 75%;
  height: 7px;
  border-radius: 5px;
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
  background-color: #ffffff;
  z-index: 2;
}
.rtl .webinar-card .image-box .progress {
  left: auto;
  right: 18px;
}
.webinar-card .image-box .progress .progress-bar {
  height: 5px;
  background-color: var(--primary);
  border-radius: 5px;
  margin-top: 1px;
  margin-left: 1px;
}
.webinar-card .image-box .webinar-notify {
  width: 40px;
  height: 40px;
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
  background-color: #ffffff;
  position: absolute;
  bottom: -20px;
  right: 18px;
  border-radius: 50%;
  z-index: 3;
  transition: all 0.3s ease;
}
.webinar-card .image-box .webinar-notify:hover {
  background-color: var(--secondary);
  color: #ffffff;
  transition: all 0.3s ease;
}
.webinar-card .image-box .webinar-notify:hover svg {
  stroke: #ffffff;
}
.rtl .webinar-card .image-box .webinar-notify {
  right: auto;
  left: 18px;
}
.webinar-card .image-box .progress-and-bell {
  position: absolute;
  bottom: 12px;
  padding: 0 12px;
  width: 100%;
}
.webinar-card .image-box .progress-and-bell .progress {
  position: relative;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: calc(100% - 50px) !important;
}
.webinar-card .image-box .progress-and-bell .webinar-notify {
  position: relative;
  bottom: 0;
  right: 0;
}
.webinar-card .webinar-card-body {
  padding: 15px 10px 20px 15px;
}
.rtl .webinar-card .webinar-card-body {
  padding: 15px 15px 20px 10px;
}
.webinar-card .webinar-card-body .webinar-price-box .real {
  font-size: 20px;
  font-weight: 800;
  line-height: 1.22;
  color: var(--primary);
  pointer-events: none;
}
.webinar-card .webinar-card-body .webinar-price-box .off {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.29;
  color: #818894;
  text-decoration: line-through;
}
.webinar-card .webinar-card-body .webinar-title {
  height: 88px;
  text-overflow: ellipsis;
  overflow: hidden;
}
.webinar-card .duration, .webinar-card .date-published {
  font-weight: 500;
  line-height: 1.19;
  color: #171347;
  pointer-events: none;
}
.webinar-card.webinar-list {
  border-radius: 10px;
  box-shadow: 0 3px 15px 0 rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
}
.webinar-card.webinar-list .image-box {
  width: 300px;
  min-height: 200px;
  height: auto;
  max-height: 100%;
  border-radius: 10px 0 0 10px;
}
.webinar-card.webinar-list .image-box::after {
  border-radius: 10px 0 0 10px;
}
.webinar-card.webinar-list .image-box img {
  border-radius: 10px 0 0 10px;
}
.webinar-card.webinar-list .image-box .progress {
  width: auto;
  left: 25px;
  right: 25px;
}
.rtl .webinar-card.webinar-list .image-box {
  border-radius: 0 10px 10px 0;
}
.rtl .webinar-card.webinar-list .image-box img {
  border-radius: 0 10px 10px 0;
}
.webinar-card.webinar-list.webinar-list-2 .image-box {
  width: 370px;
  min-width: 300px;
  height: 370px;
}
.webinar-card.webinar-list.panel-product-card .image-box {
  width: 300px;
  height: 200px;
}
.webinar-card.webinar-list.panel-installment-card .image-box {
  width: 295px;
  height: 200px;
}
.webinar-card.webinar-list.panel-installment-card .image-box::after {
  display: none;
}
.webinar-card.webinar-list .webinar-card-body {
  padding: 12px 17px 12px 25px;
}
.rtl .webinar-card.webinar-list .webinar-card-body {
  padding: 15px 25px 20px 17px;
}
.webinar-card.webinar-list .stat-title {
  font-size: 12px;
  font-weight: normal;
  line-height: 1.29;
  color: #818894;
  pointer-events: none;
}
.webinar-card.webinar-list .stat-value {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.19;
  color: #171347;
  pointer-events: none;
}
.webinar-card.webinar-list .webinar-actions {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.29;
  color: #818894;
}
.webinar-card.webinar-list .webinar-actions:hover {
  color: var(--primary);
}
@media (max-width: 767px) {
  .webinar-card.webinar-list {
    flex-direction: column;
  }
  .webinar-card.webinar-list .image-box {
    width: 100% !important;
    height: 124vw !important;
    border-radius: 10px 10px 0 0;
  }
  .webinar-card.webinar-list .image-box img {
    border-radius: 10px 10px 0 0;
  }
  .webinar-card.webinar-list .webinar-card-body {
    padding: 12px;
  }
}
.webinar-card.webinar-list-cart {
  box-shadow: none;
}
.webinar-card.webinar-list-cart .image-box {
  height: 150px;
}
.webinar-card.webinar-list-cart .image-box img {
  border-radius: 5px;
}
.webinar-card.webinar-list-cart .webinar-card-body {
  padding: 0 0 0 20px;
}
.rtl .webinar-card.webinar-list-cart .webinar-card-body {
  padding: 0 20px 0 0;
}
@media (max-width: 767px) {
  .webinar-card.webinar-list-cart .image-box {
    height: 25vw !important;
  }
}
.webinar-card:hover {
  transform: translateY(-15px);
  box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.1);
  transition: all 0.5s ease;
}
.webinar-card .webinar-icon {
  color: var(--secondary);
}
.webinar-card .upcoming-bell {
  position: absolute;
  right: 20px;
  bottom: -20px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
  background-color: #fff;
  z-index: 9;
}
.rtl .webinar-card .upcoming-bell {
  right: auto;
  left: 20px;
}
.webinar-card.webinar-list .upcoming-bell {
  bottom: auto;
  top: 20px;
}

.course-cover-container {
  position: relative;
  height: 530px;
}
@media (max-width: 991px) {
  .course-cover-container.not-active-special-offer {
    height: 350px;
  }
}
.course-cover-container .course-cover-img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 130%;
}

.mobile-course-title-wrapper {
    position: absolute;
    bottom: 205px;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 10;
    pointer-events: none; /* evita interferencia con clics */
}

.mobile-course-title {
    font-size: 28px;
    font-weight: 500;
    color: #fff;
    display: inline-block;
    padding: 6px 12px;
    border-radius: 4px;
}

.course-cover-container .cover-content {
  position: relative;
  height: 130%;
  width: 100%;
}
.course-cover-container .cover-content .container {
  z-index: 1;
}
.course-cover-container .cover-content:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0.6;
  background-color: #000000;
}

.special-offer-card .offer-percent-box {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 25%);
  background-color: var(--primary);
  border-radius: 15px;
  box-shadow: 0 -10px 15px 0 rgba(67, 212, 119, 0.29);
  width: 100px;
  height: 100px;
}
.special-offer-card .offer-percent-box .percent {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.22;
}
.special-offer-card .offer-percent-box .off {
  text-transform: uppercase;
  letter-spacing: 5px;
  font-size: 16px;
  font-weight: 400;
}
@media (max-width: 991px) {
  .special-offer-card .offer-percent-box {
    width: 70px;
    height: 70px;
    transform: translate(-50%, 50%);
    box-shadow: 0 2px 15px 0 rgba(67, 212, 119, 0.29);
  }
  .special-offer-card .offer-percent-box .percent {
    font-size: 20px;
  }
  .special-offer-card .offer-percent-box .off {
    font-size: 14px;
  }
}

.course-content-section {
  position: relative;
  top: -250px;
  margin-bottom: -250px;
}
.course-content-section .instructor-discount-card {
  margin-top: 35px;
}
.course-content-section:not(.has-progress-bar) .instructor-discount-card {
  margin-top: 75px !important;
}
@media (max-width: 991px) {
  .course-content-section:not(.has-progress-bar).course, .course-content-section:not(.has-progress-bar).text_lesson {
    top: -215px;
    margin-bottom: -215px;
  }
}
.course-content-section .course-title {
  min-height: 88px;
  max-height: 88px;
  text-overflow: ellipsis;
  overflow: hidden;
  pointer-events: none;
  position: relative;
  top: -200px;
}
.course-content-section .course-progress {
  height: 11px;
  padding: 2px;
}
.course-content-section .nav-tabs .nav-item.active, .course-content-section .nav-tabs .nav-item:hover, .course-content-section .nav-tabs .nav-item a.active, .course-content-section .nav-tabs .nav-item a:hover {
  background-color: transparent !important;
  border: none !important;
}
.course-content-section .teacher-avatar .user-circle-badge {
  right: 0;
  bottom: 0;
}

.favorites-share-box {
  margin-left: 0;
  margin-right: 0;
}
.favorites-share-box .col {
  border-right: solid 1px #ececec;
}
.favorites-share-box .col:last-child {
  border-right: none;
}
.rtl .favorites-share-box .col {
  border-left: solid 1px #ececec;
  border-right: none;
}
.rtl .favorites-share-box .col:last-child {
  border-left: none;
}
.favorites-share-box span {
  margin-top: 5px;
}

.course-description {
  color: #818894;
}
.course-description p {
  color: #818894;
}
.course-description img {
  max-width: 100% !important;
}
.course-description li {
  list-style: inherit;
}

.accordion-row .collapse-chevron-icon {
  transition: 0.3s;
}
.accordion-row .collapse-chevron-icon.feather-chevron-up {
  transform: rotateZ(180deg);
}
.accordion-row .collapse-chevron-icon.chevron-get-up {
  transform: rotateZ(180deg);
}
.accordion-row .panel-collapse {
  border-top: 1px solid #ececec;
  margin-top: 15px;
  padding-top: 15px;
}

.course-content-sidebar .course-img {
  position: relative;
  height: 450px;
}
.course-content-sidebar .course-img img {
  border-radius: 15px 15px 0 0;
}
.course-content-sidebar .course-img:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 60%;
  bottom: 0;
  background-image: linear-gradient(to bottom, rgba(6, 6, 6, 0), rgba(0, 0, 0, 0.84));
  z-index: 1;
}
.course-content-sidebar .course-img.has-video:after {
  top: 25%;
  background-image: linear-gradient(to bottom, rgba(6, 6, 6, 0), rgba(0, 0, 0, 0.84));
}
.course-content-sidebar .course-img.has-video .course-video-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 20px 12px 0 rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  z-index: 2;
}
.course-content-sidebar .course-img.has-video .course-video-icon svg {
  stroke: var(--secondary);
  fill: var(--secondary);
}
.course-content-sidebar .btn-subscribe {
  border-width: 2px;
}
.course-content-sidebar .tags-card .tag-item {
  margin-top: 15px;
  margin-right: 15px;
}
.course-content-sidebar .tags-card .tag-item:last-child {
  margin-right: 0;
}
.course-content-sidebar .sidebar-title {
  position: relative;
  pointer-events: none;
}
.course-content-sidebar .sidebar-title:after {
  content: "";
  width: 35px;
  height: 3px;
  background-color: var(--primary);
  position: absolute;
  bottom: -7px;
  left: 0;
}
.rtl .course-content-sidebar .sidebar-title:after {
  right: 0;
  left: auto;
}
.course-content-sidebar .sidebar-ads {
  width: 100%;
  height: 180px;
  max-height: 180px;
}

.course-teacher-card .teacher-avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
}
.course-teacher-card .teacher-avatar img {
  border-radius: 50%;
}
.course-teacher-card.instructors-list .teacher-avatar {
  width: 190px;
  height: 190px;
}
.course-teacher-card.instructors-list .off-label {
  position: absolute;
  top: 7px;
  left: 7px;
  border-radius: 15px 3px 15px 3px;
  z-index: 10;
}
.course-teacher-card .teacher-btn-action {
  width: 50%;
  padding: 0 !important;
}

.user-profile-avatar, .teacher-avatar {
  position: relative;
}
.user-profile-avatar .user-circle-badge, .teacher-avatar .user-circle-badge {
  width: 32px;
  height: 32px;
  position: absolute;
  bottom: 12px;
  right: 12px;
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
  border-radius: 50%;
}
.user-profile-avatar .user-circle-badge.has-verified, .teacher-avatar .user-circle-badge.has-verified {
  background-color: #2196f3;
}
.user-profile-avatar .user-circle-badge.unavailable, .teacher-avatar .user-circle-badge.unavailable {
  background-color: #f63c3c;
}

.course-reviews-box .course-progress {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
  width: 65%;
  min-width: 65%;
}
.course-reviews-box .course-progress .progress-bar {
  background-color: #ffc600;
}

.upcoming-course-progress {
  position: relative;
  width: 100%;
  height: 11px;
  border-radius: 10px;
  background-color: #fbfbfb;
}
.upcoming-course-progress .progress-bar {
  background-color: var(--primary);
}
.upcoming-course-progress .progress-bar.less-50 {
  background-color: #ffc600;
}

.reviews-stars .barrating-stars {
  border-right: 1px solid #f1f1f1;
}
.reviews-stars .barrating-stars:last-child {
  border-right: none;
}

.favorite-active {
  fill: #f63c3c;
  stroke: #f63c3c;
}

.video-js {
  width: 100% !important;
  border-radius: 10px;
}
.video-js iframe, .video-js .vjs-poster, .video-js video {
  border-radius: 10px;
}
.video-js .vjs-big-play-button {
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%);
}

@media (max-width: 991px) {
  .course-content-btns {
    font-size: 10px !important;
    padding-right: 10px !important;
    padding-left: 10px !important;
    height: 30px !important;
  }
}

.add-course-content-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background-color: #c6f2d6;
  border-radius: 50%;
  border: none !important;
}
.add-course-content-btn svg {
  color: var(--primary);
}

.chapter-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  width: 40px;
  max-width: 40px;
  min-height: 40px;
  height: 40px;
  max-height: 40px;
  background-color: var(--primary);
  border-radius: 50%;
}
.chapter-icon svg {
  color: #FFFFFF;
}
.chapter-icon.chapter-content-icon {
  background-color: #f1f1f1;
}
.chapter-icon.chapter-content-icon svg {
  color: #818894;
}

.disabled-content-badge {
  padding: 4px 8px;
  border-radius: 13px;
  background-color: rgba(246, 60, 60, 0.3);
  font-size: 12px;
  color: #f63c3c;
}

.modal-video-lists .modal-video-item > div.item-border {
  border-bottom: 1px solid #ececec;
}
.modal-video-lists .modal-video-item:last-child > div.item-border {
  border: 0;
}
.modal-video-lists .modal-video-item.active, .modal-video-lists .modal-video-item:hover {
  background-color: #f1f1f1;
}
.modal-video-lists .modal-video-item.no-hover.active, .modal-video-lists .modal-video-item.no-hover:hover {
  background-color: #FFFFFF;
}

.file-video-loading {
  display: flex;
  height: 426px;
}
@media (max-width: 767px) {
  .file-video-loading {
    height: 180px !important;
  }
}

@media (max-width: 767px) {
  .my-video-dimensions {
    height: 180px !important;
  }
}
.vjs-has-started .vjs-loading-spinner {
  display: none !important;
}

.buy-with-points-modal-img {
  min-width: 114px;
  width: 114px;
  max-width: 114px;
  height: 114px;
}

.demo-video-modal .demo-video-card {
  max-height: 480px !important;
}

.webinar-demo-bunny-iframe {
  height: 480px;
}

.play-iframe-page iframe {
  width: 100% !important;
  height: 100% !important;
}

.interactive-file-iframe {
  width: 100%;
  height: 100%;
}

.assignment-attachments-remove-btn {
  position: absolute;
  right: 10px;
  top: 5px;
  padding-right: 8px !important;
  padding-left: 8px !important;
  height: 26px !important;
}

.course-private-content {
  padding: 125px 0;
  margin: 70px 0;
}
.course-private-content .course-private-content-icon {
  width: 270px;
  height: 270px;
}
@media (max-width: 767px) {
  .course-private-content {
    padding: 80px 0;
    margin: 30px 0;
  }
  .course-private-content .course-private-content-icon {
    width: 170px;
    height: 170px;
  }
}

.course-noticeboards {
  position: relative;
  border: 1px solid var(--gray200);
}
.course-noticeboards .course-noticeboard-icon {
  width: 50px;
  min-width: 50px;
  height: 50px;
  position: relative;
}
.course-noticeboards .course-noticeboard-icon:before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  opacity: 0.3;
  z-index: 1;
}
.course-noticeboards:before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 15px;
  opacity: 0.05;
  z-index: 1;
}
.course-noticeboards.noticeboard-warning {
  border-color: var(--warning);
  color: var(--warning);
}
.course-noticeboards.noticeboard-warning .course-noticeboard-icon:before {
  background-color: var(--warning);
}
.course-noticeboards.noticeboard-warning:before {
  background-color: var(--warning);
}
.course-noticeboards.noticeboard-danger {
  border-color: var(--danger);
  color: var(--danger);
}
.course-noticeboards.noticeboard-danger .course-noticeboard-icon:before {
  background-color: var(--danger);
}
.course-noticeboards.noticeboard-danger:before {
  background-color: var(--danger);
}
.course-noticeboards.noticeboard-neutral {
  border-color: var(--gray);
  color: var(--gray);
}
.course-noticeboards.noticeboard-neutral .course-noticeboard-icon:before {
  background-color: var(--gray);
}
.course-noticeboards.noticeboard-neutral:before {
  background-color: var(--gray);
}
.course-noticeboards.noticeboard-info {
  border-color: var(--blue);
  color: var(--blue);
}
.course-noticeboards.noticeboard-info .course-noticeboard-icon:before {
  background-color: var(--blue);
}
.course-noticeboards.noticeboard-info:before {
  background-color: var(--blue);
}
.course-noticeboards.noticeboard-success {
  border-color: var(--green);
  color: var(--green);
}
.course-noticeboards.noticeboard-success .course-noticeboard-icon:before {
  background-color: var(--green);
}
.course-noticeboards.noticeboard-success:before {
  background-color: var(--green);
}

.webinar-extra-description-company-logos {
  max-width: 405px;
  max-height: 175px;
}

.webinar-extra-description-check-icon {
  min-width: 18px;
}

.upcoming-course-body-on-cover {
  height: 250px;
}
.upcoming-course-body-on-cover h1 {
  text-overflow: ellipsis;
  overflow: hidden;
  pointer-events: none;
}

.installment-card {
  border-radius: 15px;
  border: solid 1px #ececec;
}
.installment-card .card-progress {
  height: 11px;
  padding: 2px;
}
.installment-card__payments {
  padding: 25px 10px 10px;
  border-radius: 10px;
  background-color: #fbfbfb;
}
.installment-card__payments .installment-step {
  position: relative;
  padding-left: 21px;
  margin-top: 15px;
}
.installment-card__payments .installment-step:before {
  content: "";
  position: absolute;
  left: 5px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: solid 1px #ececec;
  background-color: #fff;
  z-index: 1;
}
.installment-card__payments .installment-step:after {
  content: "";
  position: absolute;
  left: 10px;
  top: 11px;
  width: 1px;
  height: 30px;
  border-left: 1px dashed #ececec;
}
.installment-card__payments .installment-step:first-child {
  margin-top: 0;
}
.installment-card__payments .installment-step:first-child:before {
  border-color: var(--primary);
}
.installment-card__payments .installment-step:last-child:after {
  display: none;
}

.installment-video-card {
  width: 100%;
  height: 400px;
  position: relative;
}
.installment-video-card video {
  width: 100% !important;
  height: 100% !important;
}

.installment-request-card {
  padding: 126px 0;
}
@media (max-width: 991px) {
  .installment-request-card {
    padding: 30px 15px;
  }
}

.installment-verify-attachment-add-btn {
  border-radius: 0 8px 8px 0 !important;
}

.waitlist-modal .waitlist-modal-icon {
  width: 136.9px;
  height: 149px;
}

.time-sheet .remove-time {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #ffffff;
  padding: 2px;
  width: 16px;
  height: 16px;
  box-shadow: 0 3px 6px 0 rgba(246, 60, 60, 0.28);
  position: absolute;
  left: -6px;
  top: -6px;
}
.time-sheet .remove-time svg {
  width: 100%;
  height: 100%;
  line-height: 0;
  color: #fff;
}
.time-sheet .meeting-type-time {
  position: absolute;
  left: 20px;
  top: -16px;
}

.add-time-sheet {
  direction: ltr !important;
}
.add-time-sheet .clock-box {
  top: -100px;
}
@media (max-width: 991px) {
  .add-time-sheet {
    padding-bottom: 200px;
  }
  .add-time-sheet .clock-box {
    top: 0;
  }
}

.clockpicker-popover {
  display: block !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
@media (max-width: 991px) {
  .clockpicker-popover {
    left: 50% !important;
    transform: translate(-50%, 0) !important;
  }
}
.clockpicker-popover .popover-title {
  display: none !important;
}
.clockpicker-popover .clockpicker-canvas-bearing, .clockpicker-popover .clockpicker-canvas-fg, .clockpicker-popover .clockpicker-canvas-bg {
  fill: var(--primary) !important;
}
.clockpicker-popover .clockpicker-canvas line {
  stroke: var(--primary) !important;
}
.clockpicker-popover .clockpicker-am-pm-block {
  visibility: hidden;
  opacity: 0;
  position: absolute;
}
.clockpicker-popover .popover-content {
  background-color: #ffffff !important;
}

.pulsate {
  -webkit-animation: pulsate 0.5s ease-out;
  -webkit-animation-iteration-count: infinite;
  opacity: 0.4;
}
.charge-account-radio .disabled-payment-channel {
  border-radius: 10px;
  filter: grayscale(100%);
}
.charge-account-radio label {
  cursor: pointer;
  border: solid 3px transparent;
  box-shadow: 0px 12px 23px 0px rgba(62, 73, 84, 0.07);
  transition: all 0.3s ease;
}
.charge-account-radio label:hover {
  border: 3px solid var(--primary);
  transition: all 0.3s ease;
  box-shadow: 0 10px 30px 0 rgba(67, 212, 119, 0.3);
}
.charge-account-radio input[type=radio] {
  visibility: hidden;
  display: none;
}
.charge-account-radio input[type=radio]:checked + label {
  box-shadow: 0 10px 30px 0 rgba(67, 212, 119, 0.3);
  border: solid 3px var(--primary);
  background-color: #ffffff;
  transition: all 0.3s ease;
}

:root {
    /* Define variables para gestión de color centralizada */
    --color-primary-accent: #007BFF; /* Azul profundo profesional */
    --color-secondary-dark: #171347; /* Texto oscuro/casi negro */
    --color-shadow-light: rgba(0, 0, 0, 0.1);
    --color-shadow-deep: rgba(0, 0, 0, 0.25);
    --color-background-card: #ffffff;
}

/* 1. Contenedor Principal: Elegancia y Elevación */
.subscribe-plan {
    position: relative;
    /* Usaremos un borde sutil en el estado normal, no transparente */
border: 1px solid;
border-image: linear-gradient(90deg, rgb(247, 52, 94), rgb(130, 0, 159)) 1;
    border-radius: 12px; /* Bordes más redondeados */
    background-color: var(--color-background-card);
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), border-color 0.4s ease; 
    /* Transición con cubic-bezier para un movimiento más "vivo" */
    z-index: 10; /* Asegura que la sombra del hover se vea bien */
    padding: 30px 20px; /* Ajuste de padding si se necesita */
}

/* 🌟 Efecto Hover: Salto más pronunciado y sombra premium */
.subscribe-plan:hover {
    transform: translateY(-10px); /* Ligeramente más alto */
    /* Sombra más profunda y difuminada */
    box-shadow: 0 15px 40px var(--color-shadow-deep); 
    /* Destaca el borde con el color de acento */
    border-color: var(--color-primary-accent); 
    z-index: 20; /* Asegura que la tarjeta activa esté encima de las vecinas */
}

/* 2. Insignia Popular (Popular Badge) */
.subscribe-plan .badge-popular {
    /* Mantenemos el posicionamiento, pero mejoramos la estética */
    position: absolute;
    top: 0;
    right: 0;
    /* Usamos un color de acento vibrante, quizás un degradado */
    background: linear-gradient(135deg, #ff9900 0%, #ff6600 100%); 
    color: white;
    padding: 8px 25px;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    /* Forma moderna (corte diagonal o semi-círculo) */
    border-radius: 0 12px 0 12px; 
}

/* 3. Icono del Plan */
.subscribe-plan .plan-icon {
    width: 200px; /* Tamaño ligeramente reducido o ajustado */
    height: 200px; 
    /* Añadir un margen inferior para separar del contenido */
    margin-bottom: 25px; 
    /* Puede tener un fondo o borde para resaltarlo */
}

/* 4. Lista de Características: El Nuevo Checkmark Elegante */

/* Contenedor de la lista */
.subscribe-plan .plan-feature {
    list-style: none; /* Quitamos las viñetas por defecto */
    padding-left: 0;
    margin-top: 20px;
    margin-bottom: 30px;
}

/* Elemento de la lista */
.subscribe-plan .plan-feature li {
    position: relative;
    color: var(--color-secondary-dark); 
    padding-left: 25px; /* Espacio para el nuevo icono */
    line-height: 1.8; /* Mejor legibilidad */
    font-size: 1rem;
    margin-bottom: 8px;
    text-align: left; /* Alineación a la izquierda dentro de la tarjeta */
}

/* 🌟 Nuevo Icono Elegante (Reemplaza el círculo) 🌟 */
.subscribe-plan .plan-feature li:before { /* Cambiado de :after a :before para mejor flujo de lectura */
    /* Usaremos un ícono de checkmark con contenido de fuente (si usas Font Awesome o similar) 
       Si no usas Font Awesome, usa un símbolo unicode elegante: */
    content: "✓"; 
    
    position: absolute;
    left: 0;
    top: 0; /* Alineación con el texto */
    
    /* Estilos del ícono */
    font-size: 1.1rem;
    font-weight: 900; /* Asegura que el checkmark se vea sólido */
    color: var(--color-primary-accent); /* Color del acento profesional */
    
    /* Si deseas un fondo circular (opcional): */
    /* background-color: rgba(0, 123, 255, 0.1); 
    border-radius: 50%;
    width: 20px;
    height: 20px;
    text-align: center;
    line-height: 20px;
    */
}
.rtl .subscribe-plan .plan-feature li:after {
  left: auto;
  right: -20px;
}

.registration-package-statistics .registration-package-statistics-icon {
  width: 48px;
  height: 48px;
}
.registration-package-statistics .registration-package-statistics-icon img {
  width: 100%;
  height: 100%;
}

.user-reward-badges img {
  width: 32px;
  height: 32px;
}
.user-reward-badges.badges-lg .badges-item {
  border: none;
}
.user-reward-badges.badges-lg img {
  width: 128px;
  height: 128px;
}
@media (max-width: 991px) {
  .user-reward-badges.badges-lg img {
    width: 60px;
    height: 60px;
  }
}

.user-profile-info {
  top: -250px;
  margin-bottom: -250px;
}
@media (max-width: 991px) {
  .user-profile-info {
    top: -50px;
    margin-bottom: -50px;
  }
}
.user-profile-info .following-status {
  border-left: 2px solid #ececec;
}
.rtl .user-profile-info .following-status {
  border-right: 2px solid #ececec;
  border-left: none;
}

@media (max-width: 568px) {
  .profile-info-box {
    flex-direction: column;
    position: relative;
  }
  .profile-info-box:not(.product-show__profile-info-box) {
    top: -60px;
    margin-bottom: -60px;
  }
  .profile-info-box .user-details {
    flex-direction: column;
    width: 100%;
    text-align: center;
  }
  .profile-info-box .user-details .stars-card {
    justify-content: center;
  }
  .profile-info-box .user-actions {
    flex-direction: row !important;
    margin-top: 15px;
    width: 100%;
    justify-content: center;
  }
  .profile-info-box .user-actions button.btn-border-white {
    margin-top: 0 !important;
    margin-left: 10px;
    border-radius: 5px !important;
  }
}

.user-profile-avatar {
  width: 190px;
  min-width: 190px;
  max-width: 190px;
  height: 190px;
  border-radius: 50%;
}
.user-profile-avatar img {
  border-radius: 50%;
}
@media (min-width: 767px) and (max-width: 991px) {
  .user-profile-avatar {
    width: 120px;
    min-width: 120px;
    max-width: 120px;
    height: 120px;
  }
}
@media (max-width: 767px) {
  .user-profile-avatar {
    width: 90px;
    min-width: 90px;
    max-width: 90px;
    height: 90px;
  }
}

.user-profile-state .state-icon img {
  width: 32px;
  height: 32px;
}
.user-profile-state .state-icon.orange {
  box-shadow: 0 3px 6px 0 rgba(239, 147, 106, 0.3);
  border: solid 2px #ef9d69;
}
.user-profile-state .state-icon.blue {
  box-shadow: 0 3px 6px 0 rgba(106, 195, 239, 0.3);
  border: solid 2px #00a1d9;
}
.user-profile-state .state-icon.green {
  box-shadow: 0 3px 6px 0 rgba(67, 212, 119, 0.15);
  border: solid 2px #4fb949;
}
.user-profile-state .state-icon.royalblue {
  box-shadow: 0 3px 6px 0 rgba(111, 66, 193, 0.15);
  border: solid 2px #a855ff;
}

.pick-a-time .available-times, .pick-a-time .meeting-type-reserve {
  margin-right: 20px;
}
.pick-a-time .available-times:last-child, .pick-a-time .meeting-type-reserve:last-child {
  margin-right: 0;
}
.rtl .pick-a-time .available-times, .rtl .pick-a-time .meeting-type-reserve {
  margin-right: 0;
  margin-left: 20px;
}
.rtl .pick-a-time .available-times:last-child, .rtl .pick-a-time .meeting-type-reserve:last-child {
  margin-left: 0;
}
.pick-a-time .available-times label, .pick-a-time .meeting-type-reserve label {
  cursor: pointer;
  padding: 15px 30px;
  border-radius: 10px;
  border: solid 1px var(--primary);
  color: var(--primary);
  font-size: 0.875rem;
}
.pick-a-time .available-times.disabled label, .pick-a-time .meeting-type-reserve.disabled label {
  border: solid 1px #f1f1f1;
  color: #818894;
}
.pick-a-time .available-times input[type=checkbox], .pick-a-time .available-times input[type=radio], .pick-a-time .meeting-type-reserve input[type=checkbox], .pick-a-time .meeting-type-reserve input[type=radio] {
  visibility: hidden;
  display: none;
  transition: all 0.3s;
}
.pick-a-time .available-times input[type=checkbox]:checked + label, .pick-a-time .available-times input[type=radio]:checked + label, .pick-a-time .meeting-type-reserve input[type=checkbox]:checked + label, .pick-a-time .meeting-type-reserve input[type=radio]:checked + label {
  box-shadow: 0 3px 6px 0 rgba(1, 201, 14, 0.29);
  border: solid 1px var(--primary);
  background-color: var(--primary);
  color: #ffffff;
  transition: all 0.3s;
}
.pick-a-time .available-times input[type=checkbox]:hover + label, .pick-a-time .available-times input[type=radio]:hover + label, .pick-a-time .meeting-type-reserve input[type=checkbox]:hover + label, .pick-a-time .meeting-type-reserve input[type=radio]:hover + label {
  border: solid 1px var(--primary);
  background-color: #1FB354;
  color: #ffffff;
  transition: all 0.3s;
}
.pick-a-time .available-times .reserved-item, .pick-a-time .meeting-type-reserve .reserved-item {
  position: absolute;
  left: 10px;
  top: 0;
  transform: translate(0, -8px);
}
.pick-a-time .meeting-type-reserve {
  margin-right: 0;
}
.pick-a-time .meeting-type-reserve label {
  border-color: #f1f1f1;
  color: #818894;
  border-radius: 0;
}
.pick-a-time .meeting-type-reserve:nth-child(1) label {
  border-radius: 10px 0 0 10px;
  border-right: 0 !important;
}
.pick-a-time .meeting-type-reserve:nth-child(2) label {
  border-radius: 0 10px 10px 0;
}
.pick-a-time .meeting-type-reserve.disabled label {
  color: #818894 !important;
  background-color: #f1f1f1 !important;
  border-color: #f1f1f1 !important;
  cursor: not-allowed;
}

.inline-reservation-calender .datepicker-plot-area {
  font-family: "main-font-family";
  background-color: var(--secondary);
  padding: 0;
  border: solid 1px #ececec;
  border-radius: 15px;
}
.inline-reservation-calender .datepicker-plot-area .datepicker-navigator {
  padding: 15px 0;
}
.inline-reservation-calender .datepicker-plot-area .datepicker-navigator .pwt-btn {
  background-color: transparent;
  color: #ffffff;
}
.inline-reservation-calender .datepicker-plot-area .toolbox {
  display: none;
  margin-top: 0;
  background-color: #ffffff;
}
.inline-reservation-calender .datepicker-plot-area .datepicker-day-view {
  background-color: #ffffff;
}
.inline-reservation-calender .datepicker-plot-area .datepicker-day-view .table-days td {
  width: 62px;
  height: 60px;
}
.inline-reservation-calender .datepicker-plot-area .datepicker-day-view .table-days td span {
  color: #818894 !important;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.5s;
}
.inline-reservation-calender .datepicker-plot-area .datepicker-day-view .table-days td span:hover {
  background-color: var(--primary);
  transition: all 0.5s;
  color: #ffffff !important;
}
.inline-reservation-calender .datepicker-plot-area .datepicker-day-view .table-days td.selected span {
  background-color: var(--primary);
  text-shadow: none;
  color: #ffffff !important;
  font-weight: bold;
}
.inline-reservation-calender .datepicker-plot-area .datepicker-day-view .table-days td.disabled span {
  background-color: #ececec;
}

.inline-reservation-calender .pwt-btn-prev, .inline-reservation-calender .pwt-btn-next {
  direction: ltr;
}

.user-offline-alert {
  background-color: #f7fafd;
  border: solid 1px #ececec;
  border-radius: 10px;
}

.offline-icon {
  background-color: #8ad3ff;
  padding: 15px;
}
.offline-icon.offline-icon-right {
  border-radius: 0 10px 10px 0;
}
.rtl .offline-icon.offline-icon-right {
  border-radius: 10px 0 0 10px;
}
.offline-icon.offline-icon-left {
  border-radius: 10px 0 0 10px;
}
.rtl .offline-icon.offline-icon-left {
  border-radius: 0 10px 10px 0;
}
.offline-icon img {
  width: 43px;
  min-width: 43px;
  max-width: 43px;
  height: 43px;
  min-height: 43px;
  max-height: 43px;
}

.appointment-timezone-icon {
  width: 84px;
  height: 62px;
}
.appointment-timezone-icon img {
  width: 100%;
  height: 100%;
}

.datepicker-plot-area .datepicker-day-view .table-days {
  width: 100% !important;
  float: left !important;
  direction: ltr !important;
}
.rtl .datepicker-plot-area .datepicker-day-view .table-days {
  float: right !important;
  direction: rtl !important;
}

.datepicker-plot-area .datepicker-day-view .month-grid-box .header .header-row {
  width: 100%;
  height: 25px;
  float: left;
  display: inline-flex;
}
.datepicker-plot-area .datepicker-day-view .month-grid-box .header .header-row .header-row-cell {
  float: left;
}
.rtl .datepicker-plot-area .datepicker-day-view .month-grid-box .header .header-row, .rtl .datepicker-plot-area .datepicker-day-view .month-grid-box .header .header-row .header-row-cell {
  float: right;
}

.cart-banner {
  width: 100%;
  padding: 100px 0;
  background-color: #3900af;
}
.cart-banner .payment-hint {
  margin-top: 30px;
}
@media (max-width: 767px) {
  .cart-banner {
    padding: 50px 0;
  }
}

.cart-row {
  padding: 20px 0;
  border-bottom: solid 1px #ececec;
}
.cart-row img {
  border-radius: 10px !important;
}
.cart-row .image-box::after {
  border-radius: 10px !important;
}
.cart-row .webinar-card:hover {
  transform: inherit;
  box-shadow: inherit;
  transition: inherit;
}
.cart-row .btn-cart-list-delete {
  position: relative;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #ececec;
}
.cart-row .btn-cart-list-delete svg {
  color: #707070;
}
.cart-row .btn-cart-list-delete:hover {
  background-color: #f63c3c;
  color: #FFF;
  transition: all 0.3s ease;
}
.cart-row .btn-cart-list-delete:hover svg {
  color: #FFF;
  transition: all 0.3s ease;
}
.cart-row .btn-cart-list-delete:after {
  content: "";
  width: 36px;
  height: 36px;
  background-color: transparent;
  border: 1px solid #ececec;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.3s ease;
}
.cart-row .btn-cart-list-delete:hover:after {
  border-color: #f63c3c;
  transition: all 0.3s ease;
}

.cart-checkout-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 0;
  border-bottom: 1px solid #ececec;
}

.razorpay-payment-button {
  opacity: 0;
  visibility: hidden;
}

.empty-cart-container {
  padding: 110px 32px;
  border-radius: 15px;
  border: solid 1px #ececec;
  background-color: #fff;
  margin-top: 74px;
}
.empty-cart-container .empty-cart-icon {
  width: 256px;
  height: 250px;
}
@media (max-width: 767px) {
  .empty-cart-container {
    padding: 50px 20px;
  }
}

.search-top-banner img {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.search-top-banner .top-search-form {
  position: relative;
  z-index: 3;
}
.search-top-banner .top-search-form .search-input {
  margin-top: 120px;
  border-radius: 38px;
  box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.1);
}
@media (max-width: 991px) {
  .search-top-banner .top-search-form .search-input {
    margin-top: 70px;
  }
}
@media (max-width: 767px) {
  .search-top-banner .top-search-form .search-input {
    margin-top: 25px;
  }
}
.search-top-banner .top-search-categories-form {
  position: relative;
  z-index: 3;
}
.search-top-banner .top-search-categories-form .search-input {
  margin-top: 70px;
  border-radius: 38px;
  box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.1);
}
@media (max-width: 991px) {
  .search-top-banner .top-search-categories-form .search-input {
    margin-top: 40px;
  }
}
@media (max-width: 767px) {
  .search-top-banner .top-search-categories-form .search-input {
    margin-top: 20px;
  }
}
.search-top-banner .top-search-categories-form .course-count-badge {
  background-color: rgba(241, 241, 241, 0.5);
}

.instructor-finder-wizard {
  height: calc(100vh - 119px);
  overflow: hidden;
}
@media (max-width: 767px) {
  .instructor-finder-wizard {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
.instructor-finder-wizard .wizard-left-side {
  height: calc(100vh - 119px);
  position: relative;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: initial;
}
.instructor-finder-wizard .wizard-left-side:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.8;
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), #000);
  z-index: 1;
}
.instructor-finder-wizard .wizard-left-side .wizard-left-side-content {
  z-index: 2;
  padding: 50px 80px;
}
.instructor-finder-wizard .wizard-left-side .wizard-left-side-content .wizard-stat-icon {
  width: 64px;
  height: 64px;
  background-color: rgba(0, 0, 0, 0.5);
}
.instructor-finder-wizard .wizard-content {
  height: calc(100vh - 119px);
  overflow-y: auto;
  padding-top: 50px;
  padding-bottom: 50px;
}
.instructor-finder-wizard .wizard-step-num {
  position: relative;
}
.instructor-finder-wizard .wizard-step-num:after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 96px;
  height: 3px;
  background-color: var(--primary);
}

.full-checkbox {
  padding-right: 2rem !important;
  padding-left: 0 !important;
}
.full-checkbox .custom-control-label:after, .full-checkbox .custom-control-label:before {
  left: auto !important;
  right: -2rem;
}

.wizard-custom-radio label {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 30px;
  border: 1px solid #ececec;
  color: #818894;
}
.wizard-custom-radio input {
  display: none;
}
.wizard-custom-radio input:checked ~ label {
  background-color: var(--primary);
  border-color: var(--primary);
  color: #FFFFFF;
}
.wizard-custom-radio .wizard-custom-radio-item:first-child label {
  border-right: 0;
  border-radius: 0.5rem 0 0 0.5rem;
}
.wizard-custom-radio .wizard-custom-radio-item:last-child label {
  border-left: 0;
  border-radius: 0 0.5rem 0.5rem 0;
}
.rtl .wizard-custom-radio .wizard-custom-radio-item:first-child label {
  border-left: 0;
  border-radius: 0 0.5rem 0.5rem 0;
}
.rtl .wizard-custom-radio .wizard-custom-radio-item:last-child label {
  border-right: 0;
  border-radius: 0.5rem 0 0 0.5rem;
}

.wizard-custom-checkbox {
  margin-right: 10px;
}
.wizard-custom-checkbox label {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 30px;
  border: 1px solid #ececec;
  color: #818894;
  border-radius: 10px;
}
.wizard-custom-checkbox input {
  display: none;
}
.wizard-custom-checkbox input:checked ~ label {
  background-color: var(--primary);
  border-color: var(--primary);
  color: #FFFFFF;
}

.wrunner__valueNote_theme_default.wrunner__valueNote {
  background-color: #f1f1f1 !important;
  color: #818894 !important;
  border-radius: 50px !important;
  font-family: inherit !important;
}
.wrunner__valueNote_theme_default.wrunner__valueNote:after {
  border-top-color: #f1f1f1 !important;
}

.wrunner__pathPassed_theme_default.wrunner__pathPassed {
  background-color: var(--primary) !important;
}

.wrunner__divisions_theme_default.wrunner__divisions {
  display: none !important;
}

.wrunner__handle_theme_default.wrunner__handle {
  background-color: #FFFFFF !important;
  width: 16px;
  height: 16px;
  border: solid 2px var(--primary) !important;
}

.wrunner-value-bottom .wrunner__valueNote {
  top: unset !important;
  bottom: -18px;
}
.wrunner-value-bottom .wrunner__valueNote:after {
  bottom: unset !important;
  top: -7px;
  border-top-color: transparent !important;
  border-bottom-color: #f1f1f1 !important;
}
.wrunner-value-bottom .wrunner__path_theme_default.wrunner__path_direction_horizontal {
  top: 5px !important;
}
.wrunner-value-bottom .wrunner__outer_theme_default.wrunner__outer_direction_horizontal {
  height: 2rem !important;
}

.instructor-finder .instructor-finder-map {
  width: 100%;
  height: 550px;
}
.instructor-finder .instructor-finder-map .marker-pin {
  width: 50px;
  height: 50px;
  padding: 5px;
  background-color: #FFFFFF;
}
.instructor-finder .map-instructor-card .map-instructor-card-avatar {
  width: 64px;
  height: 64px;
}
.instructor-finder .map-instructor-card-popup {
  bottom: 50px !important;
}
.instructor-finder .map-instructor-card-popup .leaflet-popup-content {
  margin: 0 !important;
  width: 190px !important;
}
.instructor-finder .instructor-finder-card .instructor-finder-card-right-side {
  border-left: 1px solid #f1f1f1;
}
@media (max-width: 767px) {
  .instructor-finder .instructor-finder-card .instructor-finder-card-right-side {
    border-top: 1px solid #f1f1f1;
    border-left: 0;
  }
}
.instructor-finder .instructor-finder-card .instructor-avatar {
  width: 70px;
  min-width: 70px;
  max-width: 70px;
  height: 70px;
}
.instructor-finder .instructor-finder-card .off-badge {
  position: absolute;
  top: -10px;
  right: 10px;
  font-size: 14px;
  font-weight: normal;
  color: #ffffff;
  padding: 8px 15px;
  border-radius: 3px 10px 3px 10px;
  pointer-events: none;
}
@media (max-width: 767px) {
  .instructor-finder .instructor-finder-card .off-badge {
    top: 10px;
  }
}
.rtl .instructor-finder .instructor-finder-card .off-badge {
  right: auto;
  left: 10px;
}
.instructor-finder .instructor-badge {
  width: 32px;
  min-width: 32px;
  max-width: 32px;
  height: 32px;
}

.product-card {
  position: relative;
  border-radius: 15px;
  box-shadow: 0 5px 12px 0 rgba(0, 0, 0, 0.1);
  background-color: #ffffff;
  border: 1px solid #ececec;
  transition: all 0.5s ease;
}
.product-card .image-box {
  position: relative;
  width: 100%;
  height: 255px;
  border-radius: 15px 15px 0 0;
}
.product-card .image-box img {
  border-radius: 15px 15px 0 0;
}
.product-card .image-box .image-box__a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 60%;
  bottom: 0;
  background-image: linear-gradient(to bottom, rgba(6, 6, 6, 0), rgba(0, 0, 0, 0.8));
  z-index: 1;
}
.product-card .image-box .badges-lists {
  position: absolute;
  top: 0;
  left: 7px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.product-card .image-box .badges-lists .badge {
  font-size: 12px;
  font-weight: normal;
  line-height: 1.29;
  color: #ffffff;
  padding: 8px 15px;
  border-radius: 15px 3px 15px 3px;
  pointer-events: none;
  margin-top: 8px;
  margin-right: 8px;
}
.rtl .product-card .image-box .badges-lists {
  left: auto;
  right: 7px;
}
.rtl .product-card .image-box .badges-lists .badge {
  margin-right: 0;
  margin-left: 8px;
}
.product-card .image-box .out-of-stock-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 15px;
  background-image: linear-gradient(to bottom, rgba(6, 6, 6, 0), rgba(0, 0, 0, 0.84));
  margin-top: 8px;
  margin-right: 8px;
}
.product-card .image-box .out-of-stock-badge span {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.29;
  color: #ffffff;
  padding: 8px 10px;
  border-radius: 18px;
  pointer-events: none;
  background-color: rgba(0, 0, 0, 0.6);
}
.rtl .product-card .image-box .out-of-stock-badge {
  margin-right: 0;
  margin-left: 8px;
}
.product-card .image-box .hover-card-action {
  bottom: -20px;
  right: 20px;
  opacity: 0;
  position: absolute;
  transform: translateY(150%);
  transition: all 0.3s ease;
  z-index: 11;
}
.product-card .image-box .hover-card-action .btn-add-product-to-cart {
  width: 40px;
  height: 40px;
  padding: 10px;
  box-shadow: 0 10px 15px 0 rgba(67, 212, 119, 0.3);
  background-color: var(--primary);
  border-radius: 50%;
  color: #ffffff;
}
.product-card .image-box .hover-card-action .btn-add-product-to-cart:hover {
  background-color: var(--primary-hover);
}
.rtl .product-card .image-box .hover-card-action {
  right: auto;
  left: 20px;
}
.product-card .product-card-body {
  padding: 20px 10px;
}
.product-card .product-card-body .product-price-box .real {
  font-size: 20px;
  font-weight: 800;
  line-height: 1.22;
  color: var(--primary);
  pointer-events: none;
}
.product-card .product-card-body .product-price-box .off {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.29;
  color: #818894;
  text-decoration: line-through;
}
.product-card .product-card-body .product-title {
  height: 78px;
  text-overflow: ellipsis;
  overflow: hidden;
}
.product-card:hover {
  transform: translateY(-15px);
  box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.1);
  transition: all 0.5s ease;
}
.product-card:hover .hover-card-action {
  opacity: 1;
  transform: translateZ(0);
}
.product-card .product-icon {
  color: var(--secondary);
}

.product-show-image-card {
  height: 460px;
  border-radius: 15px;
}

.lazyImageWaiting {
  position: relative;
  overflow: hidden;
  background-color: #DDDBDD;
}
.lazyImageWaiting::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  transform: translateX(-100%);
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0));
  animation: shimmer 2s infinite;
  content: "";
}
@keyframes shimmer {
  100% {
    transform: translateX(100%);
  }
}

.product-show-thumbnail-card .thumbnail-card {
  width: 85px;
  height: 85px;
  border-radius: 10px;
  border: solid 2px #ececec;
}
.product-show-thumbnail-card .product-video-demo-thumb-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 45px;
  min-width: 45px;
  max-width: 45px;
  height: 45px;
  border-radius: 50%;
  z-index: 10;
}
.product-show-thumbnail-card .product-video-demo-thumb-icon img {
  width: 25px;
  min-width: 25px;
  max-width: 25px;
  height: 25px;
  border-radius: 50%;
}
.product-show-thumbnail-card .product-video-demo-thumb-icon:after, .product-show-thumbnail-card .product-video-demo-thumb-icon:before {
  content: "";
  position: absolute;
  height: 100%;
  width: 100%;
  background-color: #000;
  opacity: 0.4;
  z-index: -1;
  border-radius: 50%;
}
.product-show-thumbnail-card .product-video-demo-thumb-icon:before {
  animation: mini-pluse 2s ease-out infinite;
}
.product-show-thumbnail-card .product-video-demo-thumb-icon:after {
  animation: mini-pluse 2s 1s ease-out infinite;
}

.product-video-demo-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 75px;
  height: 75px;
  border-radius: 50%;
  z-index: 10;
}
.product-video-demo-icon img {
  width: 40px;
  min-width: 40px;
  max-width: 40px;
  height: 40px;
  border-radius: 50%;
}
.product-video-demo-icon:after, .product-video-demo-icon:before {
  content: "";
  position: absolute;
  height: 100%;
  width: 100%;
  background-color: #000;
  opacity: 0.4;
  z-index: -1;
  border-radius: 50%;
}
.product-video-demo-icon:before {
  animation: pluse 2s ease-out infinite;
}
.product-video-demo-icon:after {
  animation: pluse 2s 1s ease-out infinite;
}

@keyframes mini-pluse {
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}
.product-availability-badge {
  padding: 6px;
  border-radius: 18px;
  font-size: 12px;
  font-weight: 500;
  color: #fff;
}

.product-show-price-box .real {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.22;
  color: var(--primary);
  pointer-events: none;
}
.product-show-price-box .off {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.29;
  color: #818894;
  text-decoration: line-through;
}
.product-show-price-box .shipping-price {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.29;
  color: #818894;
}

.product-show-cart-actions .cart-quantity {
  height: 48px;
  border-radius: 10px;
  border: solid 1px #f1f1f1;
  background-color: #f7fafd;
}
.product-show-cart-actions .cart-quantity button, .product-show-cart-actions .cart-quantity input {
  height: 100%;
  background-color: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}
.product-show-cart-actions .cart-quantity button {
  width: 48px;
}
.product-show-cart-actions .cart-quantity button:hover {
  background-color: #f1f1f1;
}
.product-show-cart-actions .cart-quantity .minus {
  border-radius: 10px 0 0 10px;
}
.product-show-cart-actions .cart-quantity .plus {
  border-radius: 0 10px 10px 0;
}
.product-show-cart-actions .cart-quantity input {
  width: 110px;
  padding: 4px 8px;
  text-align: center;
  border-left: 1px solid #f1f1f1;
  border-right: 1px solid #f1f1f1;
}

.product-show-info-footer-items .icon-box {
  width: 40px;
  height: 40px;
  border: solid 1px #f1f1f1;
  background-color: #f7fafd;
  color: #818894;
  border-radius: 50%;
  padding: 10px;
}

.selectable-specification-item label {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ececec;
  background-color: #f7fafd;
  border-radius: 15px;
  margin: 0;
}
.selectable-specification-item label:hover {
  background-color: #f1f1f1;
}
.selectable-specification-item input {
  display: none;
}
.selectable-specification-item input:checked ~ label {
  border-color: var(--primary);
  color: var(--primary);
  background-color: #f7fafd !important;
}

.product-show-specification-item .specification-item-name {
  width: 200px;
  min-width: 200px;
}

.product-show-files-tab .product-file-download-btn {
  width: 40px;
  min-width: 40px;
  height: 40px;
  padding: 8px;
  background-color: var(--primary);
}

.product-show-special-offer .special-offer-card {
  box-shadow: none !important;
  border: 1px solid #f1f1f1;
}
.product-show-special-offer .special-offer-card .special-offer-title {
  font-size: 20px !important;
}

.product-online-viewer-modal-body {
  height: calc(100vh - 15rem);
}

@media (max-width: 767px) {
  .product-show__nav-tabs {
    flex-wrap: nowrap !important;
    overflow-x: auto;
  }
}

.forum-hero-section {
  padding-bottom: 144px;
  padding-top: 144px;
}
.forum-hero-section .search-input {
  border-radius: 38px;
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.03);
}
.forum-hero-section .forum-hero-section__container {
  position: relative;
  z-index: 2;
}
.forum-hero-section .forum-hero-section__image {
  height: 100%;
  width: 60%;
  max-width: 1098px;
  position: absolute;
  right: 0;
  bottom: 0;
}
.rtl .forum-hero-section .forum-hero-section__image {
  right: auto;
  left: 0;
}
@media (max-width: 991px) {
  .forum-hero-section {
    padding-bottom: 25px;
    padding-top: 25px;
  }
  .forum-hero-section .forum-hero-section__image {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin-top: 25px;
  }
}

.forum-stat-section {
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.05);
}

.forum-stat-section .forum-stat-icon {
  width: 98px;
  min-width: 98px;
  height: 96px;
  min-height: 96px;
  -o-object-fit: contain;
     object-fit: contain;
}

.forums-featured-section {
  position: relative;
  padding-bottom: 100px;
}
.forums-featured-section .forums-featured-card {
  position: relative;
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.05);
  z-index: 2;
}
.forums-featured-section .forums-featured-card-icon {
  width: 85px;
  min-width: 85px;
  height: 85px;
  min-height: 85px;
}
.forums-featured-section .forums-featured-card-users-avatar .user-avatar-card, .forums-featured-section .forums-featured-card-users-avatar .topics-count {
  width: 32px;
  min-width: 32px;
  height: 32px;
  margin-left: -8px;
  border: solid 2px #fff;
}
.forums-featured-section .forums-featured-card-users-avatar .user-avatar-card:first-child {
  margin-left: 0;
}
.forums-featured-section .forums-featured-card-users-avatar .topics-count {
  background-color: #ffffff;
  border-color: var(--gray200);
}
.forums-featured-section .forums-featured-bg-box {
  background-image: url("/assets/default/img/forum/featured_section.svg");
  position: absolute;
  left: -14%;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  z-index: 1;
}

.forums-categories-card .forums-categories-card__title {
  position: relative;
}
.forums-categories-card .forums-categories-card__title:before {
  content: "";
  width: 4px;
  height: 100%;
  position: absolute;
  left: -15px;
  top: 0;
  background-color: var(--primary);
}
.forums-categories-card .forums-categories-card__icon {
  width: 48px;
  min-width: 48px;
  height: 48px;
}
.forums-categories-card .forums-categories-card__last-post .user-avatar {
  width: 39px;
  min-width: 39px;
  height: 39px;
}

.forum-recommended-topics-section {
  position: relative;
  margin-top: 90px;
  padding-bottom: 150px;
}
.forum-recommended-topics-section .forum-recommended-topics__card {
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.05);
  z-index: 3;
}
.forum-recommended-topics-section .forum-recommended-topics__card .forum-recommended-topics__icon {
  width: 44px;
  min-width: 44px;
  height: 44px;
}
.forum-recommended-topics-section .forum-recommended-topics__lists a {
  margin-left: -4px;
}
@media (max-width: 991px) {
  .forum-recommended-topics-section {
    margin-top: 45px;
  }
}
.forum-recommended-topics-section .forums-recommended-topics-bg-box {
  background-image: url("/assets/default/img/forum/recommended-topics.svg");
  position: absolute;
  right: -10%;
  bottom: 50px;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: right;
  z-index: 1;
}

.forum-question-section .forum-question-section__img {
  margin-top: -93px;
}

.rtl .forum-recommended-topics__lists a {
  margin-left: 0;
  margin-right: -4px;
}

.input-search-topic, .btn-search-topic, .btn-create-topic {
  height: 54px !important;
}

.topics-title-section {
  background-image: url("/assets/default/img/forum/topics_title_bg.png");
  background-repeat: no-repeat;
  background-size: cover;
}
.topics-title-section .breadcrumb-item + .breadcrumb-item::before {
  color: #ffffff;
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1yaWdodCI+PHBvbHlsaW5lIHBvaW50cz0iOSAxOCAxNSAxMiA5IDYiPjwvcG9seWxpbmU+PC9zdmc+");
}

.topics-filters-section {
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.05);
}

.topics-lists-card .topics-lists-card__icons {
  width: 24px;
  min-width: 24px;
  height: 24px;
}
.topics-lists-card .topic-user-avatar {
  width: 48px;
  min-width: 48px;
  height: 48px;
}
.topics-lists-card .topic-last-post-user-avatar {
  width: 30px;
  min-width: 30px;
  height: 30px;
}

.topics-right-side-title:before {
  content: "";
  width: 4px;
  height: 100%;
  position: absolute;
  left: -15px;
  top: 0;
  background-color: var(--primary);
}

.topics-right-side-user-avatar {
  width: 48px;
  min-width: 48px;
  height: 48px;
}

.create-topic-attachments .add-btn, .create-topic-attachments .remove-btn {
  width: 38px;
  min-width: 38px;
  height: 38px;
  margin-left: 5px;
  padding: 0;
}

.topics-post-card .user-avatar {
  width: 72px;
  min-width: 72px;
  height: 72px;
}
.topics-post-card .user-avatar.green-ring {
  width: 92px;
  min-width: 92px;
  height: 92px;
  border: solid 5px var(--primary);
}
.topics-post-card .user-avatar.green-ring img {
  border: solid 5px #FFFFFF;
}
.topics-post-card .topic-post-description, .topics-post-card .topic-post-description * {
  color: #818894;
  font-size: 14px;
}
.topics-post-card .pinned-icon {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 24px;
  height: 24px;
  background-color: transparent;
  border: 0;
  border-radius: 50%;
  padding: 0;
}
.topics-post-card .pinned-icon img {
  width: 100%;
  max-width: 100%;
  height: 100%;
}

.topic-post-like-btn {
  padding: 5px 15px 5px 5px;
  border-radius: 22px;
  border: solid 1px #f1f1f1;
  background-color: #f7fafd;
  height: 43px;
}
.topic-post-like-btn .badge-icon {
  position: relative;
  width: 33px;
  min-width: 33px;
  height: 33px;
  margin-right: 5px;
  color: #f63c3c;
  background-color: #ffffff;
  border-radius: 50%;
  border: 0;
  padding: 0;
}
.topic-post-like-btn .badge-icon.liked svg {
  fill: #f63c3c;
}

.topic-posts-reply-card .js-close-reply-post {
  position: absolute;
  top: 15px;
  right: 15px;
}

.post-quotation .post-quotation-icon {
  width: 50px;
  height: 50px;
  padding: 15px;
  background-color: #f1f1f1;
}

.reply-login-close-card .icon-card {
  width: 140px;
  min-width: 140px;
  height: 152px;
}

.topics-not-result {
  padding: 100px 0;
}
.topics-not-result .topics-not-result-icon {
  width: 227px;
  height: 202px;
}

.cookie-security-dialog {
  position: fixed;
  left: 24px;
  bottom: 24px;
  width: 480px;
  z-index: 16000;
}
@media (max-width: 767px) {
  .cookie-security-dialog {
    width: 100%;
    left: 0;
    bottom: 0;
    border-radius: 15px 15px 0 0 !important;
  }
}

.cookie-security-modal-description, .cookie-security-modal-description * {
  font-size: 14px;
  color: var(--gray);
}

.cookie-settings-modal-items-card__description {
  height: 0;
  overflow: hidden;
  padding-left: 20px;
  transition: all 0.3s ease;
}
.cookie-settings-modal-items-card__description.active {
  margin-top: 15px;
}

.c-not-allowed .custom-control-label:after, .c-not-allowed .custom-control-label:before {
  cursor: not-allowed;
}

@keyframes rotated {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(1turn);
  }
}
.mobile-app-section {
  padding-bottom: 244px;
  padding-top: 184px;
}
@media (max-width: 767px) {
  .mobile-app-section {
    padding-bottom: 0;
    padding-top: 0;
  }
}
.mobile-app-section .search-input {
  border-radius: 38px;
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.03);
}
.mobile-app-section .mobile-app-section__container {
  position: relative;
  z-index: 2;
}
.mobile-app-section .mobile-app-section__image {
  height: 100%;
  width: 60%;
  max-width: 884px;
  position: absolute;
  right: 0;
  bottom: 0;
  background-image: url("/assets/default/img/mobile-app/hero-bg.svg");
  background-repeat: no-repeat;
  background-position: right;
}
.rtl .mobile-app-section .mobile-app-section__image {
  right: auto;
  left: 0;
}
.mobile-app-section .mobile-app-section__image .mobile-app-section__image-hero {
  position: relative;
  width: 273px;
  border-radius: 20px;
  box-shadow: 0 10px 30px 0 rgba(0, 0, 0, 0.05);
}
.mobile-app-section .mobile-app-section__image .mobile-app-section__image-hero .mobile-app-section__dots {
  position: absolute;
  z-index: -1;
  top: 60px;
  left: -30px;
  animation: hero-dot 5s linear 0s infinite alternate;
}
@media (max-width: 767px) {
  .mobile-app-section .mobile-app-section__image .mobile-app-section__image-hero .mobile-app-section__dots {
    top: 93px;
  }
}
.mobile-app-section .mobile-app-section__image [class*=bubble] {
  position: absolute;
  z-index: -1;
  border-radius: 50%;
}
.mobile-app-section .mobile-app-section__image [class*=bubble]:before {
  content: "";
  border-radius: 50%;
  position: absolute;
  top: 0;
  left: 50%;
}
.mobile-app-section .mobile-app-section__image .bubble-one {
  width: 120px;
  height: 120px;
  left: 20%;
  bottom: 15%;
  animation: rotated 7s linear infinite;
}
.mobile-app-section .mobile-app-section__image .bubble-one:before {
  width: 19px;
  height: 19px;
  background: var(--primary);
}
.mobile-app-section .mobile-app-section__image .bubble-two {
  width: 80px;
  height: 80px;
  right: 24%;
  top: 15%;
  animation: rotated 4s linear infinite;
}
.mobile-app-section .mobile-app-section__image .bubble-two:before {
  width: 10px;
  height: 10px;
  background: #feb3ad;
}
.mobile-app-section .mobile-app-section__image .bubble-three {
  width: 120px;
  height: 120px;
  right: 16%;
  bottom: 40%;
  animation: rotated 12s linear infinite;
}
.mobile-app-section .mobile-app-section__image .bubble-three:before {
  width: 19px;
  height: 19px;
  background: #840780;
}
@media (max-width: 767px) {
  .mobile-app-section .mobile-app-section__image {
    position: relative;
    width: 100%;
    margin-top: 30px;
    background-position: center;
  }
  .mobile-app-section .mobile-app-section__image .bubble-one {
    left: 0;
  }
  .mobile-app-section .mobile-app-section__image .bubble-two {
    right: 0;
  }
  .mobile-app-section .mobile-app-section__image .bubble-three {
    right: 0;
  }
}
.mobile-app-section .mobile-app__buttons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 55px;
  padding: 5px 25px;
  border-radius: 38px;
  box-shadow: 0 10px 15px 0 rgba(67, 212, 119, 0.1);
  margin-right: 20px;
}
.mobile-app-section .mobile-app__buttons.has-icon {
  padding: 5px 25px 5px 5px;
}
.mobile-app-section .mobile-app__buttons .mobile-app__button-icon {
  width: 45px;
  height: 45px;
  padding: 7px;
  background-color: #fff;
}
.mobile-app-section .mobile-app__buttons.btn-outline-primary .mobile-app__button-icon {
  background-color: var(--primary);
}
.mobile-app-section .mobile-app__buttons.btn-outline-secondary .mobile-app__button-icon {
  background-color: var(--secondary);
}
.mobile-app-section .mobile-app__buttons.btn-outline-warning .mobile-app__button-icon {
  background-color: var(--warning);
}
.mobile-app-section .mobile-app__buttons.btn-outline-danger .mobile-app__button-icon {
  background-color: var(--danger);
}
@media (max-width: 767px) {
  .mobile-app-section .mobile-app__buttons {
    margin-right: 0;
    width: 100%;
    margin-bottom: 15px;
    justify-content: start;
  }
}

.rtl .mobile-app__buttons {
  margin-right: 0 !important;
  margin-left: 20px !important;
}
.rtl .mobile-app__buttons.has-icon {
  padding: 5px 5px 5px 25px;
}
.rtl .mobile-app__buttons .mobile-app__button-icon {
  margin-right: 0 !important;
  margin-left: 10px !important;
}
@media (max-width: 767px) {
  .rtl .mobile-app__buttons {
    margin-right: 0 !important;
    margin-left: 0 !important;
    width: 100%;
    margin-bottom: 15px;
    justify-content: start;
  }
}

.maintenance-section .maintenance-image {
  max-width: 565.9px;
  max-height: 530.8px;
}

.gift-item-card {
  position: relative;
}
.gift-item-card .gift-webinar-card {
  position: relative;
  padding: 10px;
  border-radius: 15px;
  border: solid 1px var(--gray200);
  z-index: 2;
}
.gift-item-card .gift-webinar-card .image-box {
  width: 349px;
  min-width: 349px;
  height: 236px;
  border-radius: 10px;
}
.gift-item-card .gift-webinar-card .image-box img {
  border-radius: 10px;
}
.gift-item-card .gift-webinar-card .webinar-price-box .real {
  font-size: 20px;
  font-weight: 800;
  line-height: 1.22;
  color: var(--primary);
  pointer-events: none;
}
.gift-item-card .gift-webinar-card .webinar-price-box .off {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.29;
  color: #818894;
  text-decoration: line-through;
}
.gift-item-card .gift-webinar-card .webinar-title {
  height: 48px;
  text-overflow: ellipsis;
  overflow: hidden;
}
.gift-item-card .gift-item-card-icon {
  position: absolute;
  top: -72px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}

.forms-hero {
  height: 530px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  padding-top: 160px;
}
.forms-hero-mask {
  content: "";
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to top, #000 0%, rgba(84, 84, 84, 0) 100%);
  z-index: 1;
}
.forms-hero-content {
  z-index: 2;
}

.forms-body {
  position: relative;
  top: -242px;
  margin-bottom: -242px;
  border-radius: 15px;
  box-shadow: 0 5px 12px 0 rgba(0, 0, 0, 0.1);
  z-index: 3;
}
.forms-body .forms-body-welcome-image {
  width: auto;
  height: 250px;
  min-height: 250px;
  max-height: 250px;
}
.forms-body .forms-body-welcome-message, .forms-body .forms-body-welcome-message * {
  color: var(--gray);
}

.instructor-discount-card {
  background-color: var(--gray100);
}
.instructor-discount-card__code {
  position: relative;
  width: 122px;
  height: 82px;
  padding-right: 15px;
  border-right: 1px dashed #ececec;
}
.instructor-discount-card__code:before, .instructor-discount-card__code:after {
  content: "";
  position: absolute;
  right: -8px;
  width: 15px;
  height: 15px;
  background-color: #fff;
  border-radius: 50%;
  z-index: 1;
}
.instructor-discount-card__code:before {
  top: -7px;
}
.instructor-discount-card__code:after {
  bottom: -7px;
}
.instructor-discount-card.is-cart-page .instructor-discount-card__code:before, .instructor-discount-card.is-cart-page .instructor-discount-card__code:after {
  background-color: var(--body_bg, #ffffff);
}

.purchase-notification-image {
  width: 73px;
  min-width: 73px;
  height: 73px;
  border-radius: 5px;
}
.purchase-notification-image img {
  border-radius: 5px;
}
.purchase-notification-time {
  color: #bcc2cd;
}

.custom-table thead th, .custom-table thead td {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.19;
  text-align: left;
  color: #818894;
  border-bottom: none;
  border-top: none;
}
.rtl .custom-table thead th, .rtl .custom-table thead td {
  text-align: right;
}
.custom-table tbody td {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.19;
  text-align: center;
  color: #171347;
}

.table-responsive {
  overflow: visible;
}
@media (max-width: 991px) {
  .table-responsive {
    overflow-x: auto;
  }
}

.table th, .table td {
  border-top: none !important;
}

.table-actions.dropdown .dropdown-toggle::after {
  display: none;
}
.table-actions.dropdown .dropdown-menu {
  right: 25px !important;
  top: -71px !important;
  left: auto !important;
  min-width: -moz-max-content !important;
  min-width: max-content !important;
  border-radius: 0 !important;
  transition: all 0.3s;
  opacity: 0;
  visibility: hidden;
  display: block !important;
  font-size: 14px;
}
.rtl .table-actions.dropdown .dropdown-menu {
  right: auto !important;
  left: 25px !important;
}
.table-actions.dropdown .dropdown-menu.show {
  opacity: 1;
  visibility: visible;
}
.table-actions.dropdown .dropdown-menu:after {
  display: none;
}
.table-actions.dropdown .dropdown-menu button, .table-actions.dropdown .dropdown-menu a {
  color: #818894;
}
.table-actions.dropdown .dropdown-menu button:hover, .table-actions.dropdown .dropdown-menu a:hover {
  color: var(--primary);
}
.table-actions.dropdown .dropdown-menu.menu-lg {
  min-width: 192px !important;
}
.table-actions.dropdown.table-actions-lg .dropdown-menu {
  min-width: 150px !important;
}

.input-label {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.19;
  color: #ffffff;
}
.input-label .braces {
  font-size: 11px;
}

.category-filter-title {
  position: relative;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.19;
  color: #171347;
}
.category-filter-title:after {
  content: "";
  width: 50px;
  height: 3px;
  background-color: var(--primary);
  position: absolute;
  bottom: -10px;
  left: 0;
}
.rtl .category-filter-title:after {
  left: auto;
  right: 0;
}

.accordion-content-wrapper {
  position: relative;
}

.webinar-form .webinar-category-filters {
  padding: 24px 28px;
  border-radius: 10px;
  box-shadow: 0px 12px 23px 0px rgba(62, 73, 84, 0.04);
  background-color: #ffffff;
  border: 1px solid #f1f1f1;
}
.webinar-form .table-responsive {
  overflow: visible;
}
@media (max-width: 991px) {
  .webinar-form .table-responsive {
    overflow: auto;
  }
}
.webinar-form .table {
  border-radius: 10px;
  background-color: #ffffff;
  box-shadow: 0 3px 30px -10px rgba(0, 0, 0, 0.1);
  border: 1px solid #f1f1f1;
}
.webinar-form .table th {
  border-top: 0;
  font-size: 16px;
  font-weight: 500;
  color: #818894;
}
.webinar-form .table .btn-gray200 {
  font-size: 14px;
}

.range-time-picker {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 0 0.5rem 0.5rem 0;
  width: 100%;
}
.range-time-picker input {
  border: none;
  max-width: 60px;
  padding: 0 0 0 1rem;
}

.webinar-progress .progress-item {
  padding: 0 25px;
  border-left: 1px solid #ececec;
}
.webinar-progress .progress-item button {
  transition: all 0.3s ease;
}
.webinar-progress .progress-item button:hover {
  background-color: var(--primary);
  transition: all 0.3s ease;
}
.webinar-progress .progress-item:first-child {
  padding-left: 0;
  border-left: none;
}
.webinar-progress .progress-item .progress-icon {
  background-color: #f1f1f1;
  width: 48px;
  height: 48px;
  transition: all 0.3s ease;
}
.webinar-progress .progress-item .progress-icon:hover {
  background-color: var(--primary);
  transition: all 0.3s ease;
}
.webinar-progress .progress-item .progress-icon.active {
  background-color: transparent;
  background-image: linear-gradient(to bottom, #9effc1, var(--primary));
}
@media (max-width: 991px) {
  .webinar-progress .progress-item {
    border-left: 0;
    padding: 0;
    margin: 5px 0;
  }
  .webinar-progress .progress-item:first-child {
    margin-top: 0;
  }
}

.course-statistic-cards-shadow {
  box-shadow: 0 3px 15px 0 rgba(0, 0, 0, 0.04);
}
.course-statistic-cards-shadow .statistic-pie-charts {
  height: 197px;
}
.course-statistic-cards-shadow .cart-label-color {
  width: 15px;
  min-width: 15px;
  height: 15px;
}

.quiz-question-card {
  border-radius: 10px;
  border: 1px solid #ececec;
  background-color: #211552;
  padding: 20px 25px;
}
.quiz-question-card .question-title {
  font-weight: 500;
  color: #171347;
}
.quiz-question-card .question-infos {
  color: #818894;
}

.add-answer-container {
  height: 300px;
  overflow-y: auto;
  overflow-x: visible;
  width: 100%;
  padding-right: 10px;
}
.add-answer-container .row {
  margin: 0;
}

.add-answer-card {
  border-radius: 10px;
  border: solid 1px #ececec;
  padding: 8px 12px;
  position: relative;
}
.add-answer-card .answer-remove {
  width: 40px;
  height: 40px;
  padding: 0;
  position: absolute;
  right: 55px;
  top: 0;
  transform: translate(0, -50%);
}

.quiz-form .quiz-form-btn {
  min-width: 170px;
}
@media (max-width: 767px) {
  .quiz-form .quiz-form-btn {
    min-width: auto;
  }
}
.quiz-form fieldset:not(:first-of-type) {
  display: none;
}
.quiz-form .quiz-question-media-card {
  width: 100%;
  max-width: 100%;
}
.quiz-form .quiz-question-media-card img {
  max-width: 100%;
  max-height: 100%;
}
.quiz-form .quiz-question-media-card .video-js {
  min-height: 300px !important;
}
.quiz-form .question-multi-answers {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  width: 100%;
  border: none;
  border-radius: 0;
}
.quiz-form .question-multi-answers .answer-item {
  position: relative;
  width: 100%;
  height: 250px;
}
.quiz-form .question-multi-answers .answer-item .correct {
  position: absolute;
  top: 10px;
  left: 10px;
  border-radius: 10px 0 10px 0;
  padding: 5px 15px;
  z-index: 10;
}
.quiz-form .question-multi-answers .answer-item .answer-label {
  cursor: pointer;
  height: 100%;
  border-radius: 15px;
  border: 1px solid #ececec;
  text-align: center;
  transition: all 0.3s ease;
}
.quiz-form .question-multi-answers .answer-item .answer-label:hover {
  background-color: #f7fafd;
  transition: all 0.3s ease;
}
.quiz-form .question-multi-answers .answer-item .image-container {
  position: relative;
  cursor: pointer;
  border-radius: 15px;
  transition: all 0.2s ease;
  width: 100%;
  height: 100%;
}
.quiz-form .question-multi-answers .answer-item .image-container img {
  border-radius: 15px;
}
.quiz-form .question-multi-answers .answer-item .image-container:after {
  display: block;
  opacity: 0;
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  background-image: linear-gradient(to bottom, rgba(6, 6, 6, 0), rgba(0, 0, 0, 0.84));
  border-radius: 10px;
}
.quiz-form .question-multi-answers .answer-item .image-container .selected {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  color: #fff;
  transform: translate(-50%, -50%);
  z-index: 5;
}
.quiz-form .question-multi-answers .answer-item .image-container:hover:after {
  opacity: 1;
}
.quiz-form .question-multi-answers .answer-item input[type=radio] {
  visibility: hidden;
  display: none;
  transition: all ease 0.3s;
}
.quiz-form .question-multi-answers .answer-item input[type=radio]:checked + .answer-label {
  box-shadow: 0 10px 30px 0 rgba(67, 212, 119, 0.3);
  border: solid 3px var(--primary);
  background-color: #ffffff;
  transition: all ease 0.3s;
}
.quiz-form .question-multi-answers .answer-item input[type=radio]:checked + .answer-label .image-container:after {
  opacity: 1;
}

.bg-primary {
  background-color: var(--primary) !important;
}

.text-primary {
  color: var(--primary) !important;
}

.badge-primary {
  background-color: #00dbff !important;
}

.badge-circle-primary {
  background-color: var(--primary) !important;
}

.btn-primary {
    padding: 32px 30px; /* Incrementa el padding vertical y horizontal para más cuerpo */
  color: #ffffff;
  background: linear-gradient(90deg, rgb(57, 0, 175), rgb(0, 255, 247));
  border: 2px solid rgb(0, 255, 247);
  box-shadow: 0 4px 15px rgba(0, 255, 247, 0.4);
  transition: all 0.3s;
}

.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active {
  color: #ffffff;
  background: linear-gradient(
90deg, rgb(247, 52, 94) 0%, rgb(130, 0, 159) 100%);
  border-color: rgb(0, 255, 247);
  box-shadow: 0 6px 20px rgba(0, 255, 247, 0.6);
  transition: all 0.3s;
}

/* Botón primary deshabilitado */
.btn-primary.disabled,
.btn-primary:disabled {
  color: #000000; /* letras negras */
  background: linear-gradient(90deg, rgb(57, 0, 175), rgb(0, 255, 247));
  border: 2px solid rgb(0, 255, 247);
}

/* Botón outline primary */
.btn-outline-primary {
  color: #000000; /* letras negras */
  border: 2px solid rgb(0, 255, 247);
  background: transparent;
  transition: all 0.3s;
}

/* Botón outline primary hover */
.btn-outline-primary:hover {
  color: #ffffff; /* letras negras */
  background: linear-gradient(90deg, rgb(57, 0, 175), rgb(0, 255, 247));
  border: 2px solid rgb(0, 255, 247);
}


.bg-secondary {
  background-color: #3900af!important;
}

.text-secondary {
  color: var(--secondary) !important;
}

.badge-secondary {
  background-color: var(--secondary) !important;
}

.badge-circle-secondary {
  background-color: var(--secondary) !important;
}

.btn-secondary {
  color: var(--secondary-btn-color);
  background-color: var(--secondary);
  border-color: var(--secondary-border);
  box-shadow: var(--secondary-btn-shadow);
  transition: all 0.3s;
}
.btn-secondary:hover, .btn-secondary:active, .btn-secondary:focus, .btn-secondary:not(:disabled):not(.disabled):active {
  color: var(--secondary-btn-color-hover);
  background-color: var(--secondary-hover);
  border-color: var(--secondary-border-hover);
  box-shadow: var(--secondary-btn-shadow-hover);
  transition: all 0.3s;
}
.btn-secondary.disabled, .btn-secondary:disabled {
  color: var(--secondary-btn-color);
  background-color: var(--secondary);
  border-color: var(--secondary-border);
}

.btn-outline-secondary {
  color: var(--secondary);
  border-color: var(--secondary);
}
.btn-outline-secondary:hover {
  color: var(--secondary-btn-color);
  background-color: var(--secondary);
  border-color: var(--secondary);
}

.input-group-text {
  background-color: var(--secondary) !important;
  border-color: var(--secondary-border) !important;
}

.custom-control-input:not(:disabled):active ~ .custom-control-label:before, .custom-control-input:checked ~ .custom-control-label:before {
  color: var(--primary-btn-color) !important;
  background-color: var(--primary) !important;
  border-color: var(--primary-border) !important;
  box-shadow: none;
}

.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
  opacity: 0.6 !important;
}

.hero-banner-ciberpunk {
    position: relative;
    width: 100%;
    height: 785px;
    background-image: url('{{ asset('public/assets/default/vendors/revolution/agencia_digital_mono/wp-content/uploads/cyberpunk_city.jpg') }}');
    background-size: cover;
    background-position: center center;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 10%;
    overflow: hidden;
}

/* Overlay de color para el efecto futurista */
.hero-banner-ciberpunk::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(163deg, rgba(50,0,100,0.7) 0%, rgba(100,0,150,0.7) 25%, rgba(0,200,200,0.7) 65%, rgba(255,0,150,0.7) 100%);
    z-index: 1;
}

.content-container {
    position: relative;
    z-index: 2;
    max-width: 700px;
    padding: 20px;
}

/* Estilo del título */
.hero-title {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 70px;
    font-weight: 900;
    color: #00FFFF;
    text-shadow: 0 0 10px #00FFFF, 0 0 20px #00FFFF, 0 0 30px #00FFFF;
    margin: 0 0 10px;
}

/* Estilo del subtítulo */
.hero-subtitle {
    font-family: 'Share Tech Mono', monospace;
    font-size: 28px;
    font-weight: 600;
    color: #FF00FF;
    text-shadow: 0 0 8px #FF00FF;
    margin: 0 0 40px;
}

/* Estilo del botón */
.ciberpunk-btn {
    display: inline-block;
    padding: 15px 50px;
    background: linear-gradient(90deg, #8A2BE2 0%, #FF00FF 50%, #00FFFF 100%);
    color: #FFFFFF;
    font-family: 'Electrolize', sans-serif;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 2px;
    border-radius: 10px;
    box-shadow: 0 0 15px rgba(0,255,255,0.6);
    transition: all 0.3s ease-in-out;
}

.ciberpunk-btn:hover {
    transform: scale(1.05);
    background: #00FFFF;
    box-shadow: 0 0 20px rgba(0,255,255,0.8);
}

/* Media Queries para responsividad */
@media (max-width: 992px) {
    /* Oculta la imagen del paralelepípedo en dispositivos móviles */
    .futuristic-display {
        display: none;
    }
    
    .hero-banner-ciberpunk {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        padding-left: 5%;
        padding-right: 5%;
    }
    .hero-title, .hero-subtitle {
        text-align: center;
    }
    .hero-title {
        font-size: 45px;
    }
    .hero-subtitle {
        font-size: 20px;
    }
    .ciberpunk-btn {
        font-size: 16px;
        padding: 12px 30px;
    }
}

.cyberpunk-banner-full {
    position: relative;
    width: 100%;
    height: 785px;
    background-image: url('{{ asset('public/assets/default/vendors/revolution/agencia_digital_mono/wp-content/uploads/cyberpunk_city.jpg') }}');
    background-size: cover;
    background-position: center center;
    display: flex;
    justify-content: space-between; /* Distribuye el espacio entre los elementos */
    align-items: center;
    text-align: left;
    overflow: hidden;
    color: #fff;
    padding: 0 5%;
    flex-direction: row-reverse; /* ¡Este es el cambio clave para invertir el orden! */
}

.background-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(163deg, rgba(50,0,100,0.8) 0%, rgba(100,0,150,0.8) 25%, rgba(0,200,200,0.8) 65%, rgba(255,0,150,0.8) 100%);
    z-index: 1;
}

.banner-content-container {
    position: relative;
    z-index: 3;
    max-width: 500px;
    transform: translateY(-50px);
}

.banner-main-title {
    font-family: 'Orbitron', sans-serif;
    font-size: 58px;
    font-weight: 900;
    text-transform: uppercase;
    margin: 0 0 10px;
    
    /* Colores Tecnológicos: Degradado de Cromo a Violeta Eléctrico */
    background: linear-gradient(
        135deg, 
        #fff 0%, 
        #00d4ff 25%, 
        #9333ea 50%, 
        #00d4ff 75%, 
        #fff 100%
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    
    /* Sombra de texto multicapa: El efecto "Glow" real */
    /* Usamos una mezcla de Azul Eléctrico y Púrpura */
    filter: drop-shadow(0 0 5px rgba(0, 212, 255, 0.5)) 
            drop-shadow(0 0 15px rgba(147, 51, 234, 0.3));

    /* Animación sutil para que el color "viva" */
    animation: shine 5s linear infinite;
    
    transition: transform 0.3s ease-in-out, filter 0.3s ease;
}

/* Interacción: se ilumina más al pasar el mouse */
.banner-main-title:hover {
    transform: scale(1.02) translateY(-5px);
    filter: drop-shadow(0 0 10px rgba(0, 212, 255, 0.8)) 
            drop-shadow(0 0 25px rgba(147, 51, 234, 0.6));
}

/* Animación del brillo del degradado */
@keyframes shine {
    to {
        background-position: 200% center;
    }
}

.banner-subtitle-ia {
    font-family: 'Share Tech Mono', monospace;
    font-size: 32px;
    font-weight: 600;
    color: #4B0082;
    text-shadow: none;
    background: rgba(255, 255, 255, 0.9);
    padding: 8px 15px;
    border-radius: 5px;
    display: inline-block;
    margin-bottom: 40px;
    letter-spacing: 2px;
    transition: transform 0.3s ease-in-out;
}

.banner-subtitle-ia:hover {
    transform: scale(1.05);
}

.futuristic-display-container-collage {
    position: relative;
    z-index: 2;
    width: 55%;
    height: 100%;
    transform: skewX(-10deg) translateX(100px);
    background: rgba(0, 0, 0, 0.5);
    border: 3px solid #FF00FF;
    box-shadow: 0 0 30px #FF00FF, inset 0 0 15px #FF00FF;
    overflow: hidden;
    filter: brightness(0.8) contrast(1.2);
}

/* Contenedor de scroll continuo */
.image-collage-scroll {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: auto;
    animation: scroll-up 20s linear infinite;
}

/* Contenedor de scroll continuo */
.image-collage-scroll-2 {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: auto;
    animation: scroll-up 10s linear infinite;
}

/* Cada imagen */
.image-collage-scroll img {
    width: 100%;
    height: auto;
    object-fit: cover;
    flex-shrink: 0;
    transform: skewX(0deg);
}

/* Animación infinita sin cortes */
@keyframes scroll-up {
    0% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(-50%);
    }
}


.search-box-container {
    margin-top: 30px;
    position: relative;
    z-index: 3;
    transition: transform 0.3s ease-in-out;
}

.search-box-container:hover {
    transform: scale(1.02);
}

.search-input .btn-primary {
    transition: all 0.3s ease-in-out;
}

.search-input .btn-primary:hover {
    transform: scale(1.05);
    background-color: #00FFFF;
    border-color: #00FFFF;
    box-shadow: 0 0 20px rgba(0,255,255,0.8);
}

@media (max-width: 992px) {
    .futuristic-display-container-collage {
        display: none;
    }
    .cyberpunk-banner-full {
        height: 500px;
        padding: 5%;
        flex-direction: column-reverse; /* También se invierte en móvil */
    }
    .banner-content-container {
        text-align: center;
        transform: translateY(0);
    }
    .banner-main-title {
        font-size: 40px;
    }
    .banner-subtitle-ia {
        font-size: 18px;
    }
    .search-box-container {
        transform: none;
    }
}

/* ... (tu CSS existente) ... */

/* Contenedor del buscador */
.search-box-container {
    margin-top: 30px;
    position: relative;
    z-index: 3;
    transition: transform 0.3s ease-in-out;
}

.search-box-container:hover {
    transform: scale(1.02);
}

/* El contenedor del buscador mantiene sus clases, pero le añadimos un estilo de redondeo */
.search-input {
    /* Clases originales: bg-white p-10 flex-grow-1 */
    /* Lo mantienes como está en tu HTML */
    border-radius: 50px; /* Redondea todo el contenedor */
    overflow: hidden; /* Oculta cualquier parte que sobresalga */
}

/* El campo de texto dentro del buscador */
.search-input .form-control {
    /* Clases originales: form-control border-0 */
    border-radius: 50px 0 0 50px; /* Redondea solo el lado izquierdo */
}

/* El botón del buscador */
.search-input .btn-primary {
    /* Clases originales: btn btn-primary rounded-pill */
    border-radius: 0 50px 50px 0; /* Redondea solo el lado derecho */
}

/* Estilo del contenedor del buscador */
.search-box-container {
    margin-top: 30px;
    position: relative;
    z-index: 3;
    transition: transform 0.3s ease-in-out;
}

/* Título principal del buscador: Efecto "Core de Energía" */
.search-title-ia {
    font-family: 'Orbitron', sans-serif;
    font-size: 30px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin: 0;

    /* Degradado Eléctrico: Blanco cristal a Azul Cobalto */
    background: linear-gradient(180deg, #FFFFFF 0%, #00E5FF 50%, #2979FF 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;

    /* Resplandor multicapa (Glow) */
    filter: drop-shadow(0 0 8px rgba(0, 229, 255, 0.6)) 
            drop-shadow(0 0 15px rgba(41, 121, 255, 0.3));
    
    transition: all 0.3s ease;
}

/* Subtítulo del buscador: Estilo "Cyber-Link" */
.search-subtitle-ia {
    font-family: 'Share Tech Mono', monospace;
    font-size: 16px; /* Bajamos un poco el tamaño para contraste jerárquico */
    font-weight: 400;
    letter-spacing: 4px;
    margin: 5px 0 20px;
    text-transform: uppercase;

    /* Color: Violeta Neón con opacidad */
    color: #BC13FE;
    
    /* Efecto de escaneo sutil */
    text-shadow: 0 0 5px rgba(188, 19, 254, 0.7),
                 2px 2px 0px rgba(0, 0, 0, 0.5);
    
    opacity: 0.9;
}

/* --- INTERACCIÓN --- */

.search-title-ia:hover {
    filter: drop-shadow(0 0 12px rgba(0, 229, 255, 0.9));
    transform: scale(1.03);
    letter-spacing: 5px; /* Efecto de expansión tecnológica */
}
/* Contenedor del conteo de cursos */
.courses-count-wrapper {
    margin-bottom: 20px;
    transition: transform 0.3s ease;
}

.courses-count-wrapper:hover {
    transform: scale(1.1);
}

/* Estilo del badge de conteo de cursos */
.course-count-badge {
    font-family: 'Electrolize', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #fff !important;
    background: rgba(0, 255, 255, 0.2);
    border: 1px solid #00FFFF;
    box-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
    border-radius: 50px !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 8px 20px !important;
    line-height: 1.6 !important; /* Esto separa las líneas de texto */
    display: none;       /* Asegura que el padding y la altura se respeten */
}

/* Estilo del buscador original (para no interferir) */
.search-input {
    margin-top: 20px !important;
}

/* Efecto hover del botón del buscador */
.search-input .btn-primary {
    transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}

.search-input .btn-primary:hover {
    transform: scale(1.05);
    background-color: #FF00FF;
    border-color: #FF00FF;
    box-shadow: 0 0 20px rgba(255, 0, 255, 0.8);
}

/* Nuevo botón de llamada a la acción */
.cta-btn-cyberpunk {
    display: inline-block;
    padding: 15px 50px;
    background: transparent;
    color: #00FFFF;
    font-family: 'Electrolize', sans-serif;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 2px;
    border: 2px solid #00FFFF;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0,255,255,0.4);
    margin-top: 40px;
    transition: all 0.3s ease-in-out;
}

.cta-btn-cyberpunk:hover {
    transform: scale(1.05);
    background: #00FFFF;
    color: #000;
    box-shadow: 0 0 20px rgba(0,255,255,0.8);
}

.course-short-description {
    
     position: relative;
    bottom: 200px; /* Valor por defecto para pantallas grandes */
    text-align: left; /* Alineación a la izquierda */
}

/* Responsive: tablets y móviles */
@media (max-width: 992px) {
    .course-short-description {
        text-align: center;   /* Centrado en tablet */
        font-size: 16px;
        top: 0px; /* Valor por defecto para pantallas grandes */

    }
}

@media (max-width: 576px) {
    .course-short-description {
        text-align: center;   /* Centrado en móvil */
        font-size: 14px;
        top: -50px; /* Valor por defecto para pantallas grandes */

    }
}
/* Contenedor principal para manejar el wrap en móvil */
.navbar-mobile-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 10px 0;
}

/* Estilo del Buscador (Input) */
.search-input-group {
    background: #151515; /* Fondo oscuro como la imagen */
    border: 1px solid #333;
    border-radius: 50px; /* Bordes muy redondeados */
    padding: 8px 20px;
    display: flex;
    align-items: center;
}

.search-input-group input {
    background: transparent;
    border: none;
    color: #888;
    margin-left: 10px;
    width: 100%;
    font-size: 16px;
}

.search-input-group input:focus {
    outline: none;
    color: #fff;
}

.search-input-group button {
    background: transparent;
    border: none;
    color: #ccc;
    padding: 0;
    display: flex;
    align-items: center;
}

/* Ajustes para el logo en móvil */
@media (max-width: 991px) {
    .navbar-brand img {
        max-height: 40px; /* Ajusta según tu logo */
    }
    
    #navbar {
        background-color: #000 !important; /* Fondo negro de la barra */
    }

    /* Ocultar elementos innecesarios en móvil que vienen del código original */
    .nav-start-a-live-btn {
        display: none !important; 
    }
}

/* =========================================================
   ESTILOS PREMIUM PARA FEATHER ICONS (MOBILE)
========================================================= */

/* Selector para Carrito y Campana */
.feather-shopping-cart, 
.feather-bell {
    /* Color blanco por defecto */
    color: #FFFFFF !important;
    stroke: #FFFFFF !important; 
    
    /* Grosor de línea para look minimalista (Stripe/Linear style) */
    stroke-width: 2px;
    
    /* Dimensiones consistentes */
    width: 22px;
    height: 22px;
    
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    
    /* Suavizado de bordes en pantallas retina */
    -webkit-font-smoothing: antialiased;
}

/* Efecto Hover Amarillo Silicon Valley */
.feather-shopping-cart:hover, 
.feather-bell:hover {
    /* Amarillo vibrante de acento */
    color: #FACC15 !important; 
    stroke: #FACC15 !important;
    
    /* Micro-interacción: Elevación sutil */
    transform: translateY(-2px);
    
    /* Brillo de neón sutil para resaltar la interacción */
    filter: drop-shadow(0 0 8px rgba(250, 204, 21, 0.45));
}

/* Espaciado solicitado por clase */
.mr-10 {
    margin-right: 10px !important;
}

img.img-cover-logo {
    width: 300px;
    height: auto;
    position: relative;
    right: 120px;
}

/* =====================================================
   HERO AULOPOLIS — CLEAN / STABLE VERSION
===================================================== */

.aulopolis-hero {
    position: relative !important;
    z-index: 20 !important;

    width: 100%;
    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 7% !important;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,0.88) 0%,
            rgba(0,0,0,0.72) 35%,
            rgba(0,0,0,0.35) 65%,
            rgba(0,0,0,0.15) 100%
        );

    overflow: visible !important;
    box-sizing: border-box;
    isolation: isolate;
}


/* Ocultar tabs nativas del slider */
rs-tabs.nav-dir-horizontal.nav-pos-ver-bottom.nav-pos-hor-left.rs-nav-element.tp-tabs.inner.cyber_tabs {
    display: none !important;
}


/* =====================================================
   HERO BACKGROUND
===================================================== */

.hero-bg {
    filter: brightness(1.08) saturate(1.12) contrast(1.03) !important;
    transform: scale(1.02);
    will-change: transform;
}


/* =====================================================
   LEFT SIDE
===================================================== */

.hero-left {
    position: relative !important;
    z-index: 5 !important;

    width: 38%;
    max-width: 620px;

    left: auto !important;
    top: auto !important;

    transform: none !important;
}

.hero-tag {
    display: inline-block;

    padding: 10px 18px;
    margin-bottom: 28px;

    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 50px;

    background: rgba(255,255,255,0.04);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    color: #00ffe0;
    font-size: 13px;
    letter-spacing: 2px;
    font-weight: 600;
}

.hero-title {
    margin: 0 0 25px 0;

    color: #fff;

    font-size: clamp(58px, 6vw, 88px);
    line-height: .92;
    font-weight: 900;

    text-transform: uppercase;
    letter-spacing: -3px;

    text-shadow:
        0 0 20px rgba(0,255,255,.25),
        0 0 60px rgba(0,255,255,.12);
}

.hero-description {
    max-width: 520px;

    color: rgba(255,255,255,.72);

    font-size: 18px;
    line-height: 1.8;
}


/* =====================================================
   ROUTES SECTION — SEPARADA DEL HERO
===================================================== */

.aulopolis-routes-section {
    position: relative !important;
    z-index: 30 !important;

    width: 100%;

    margin-top: -170px;
    padding: 0 7% 110px;

    background: transparent;

    box-sizing: border-box;
    overflow: visible !important;
}


.aulopolis-routes-section .hero-routes {
    position: relative !important;
    z-index: 50 !important;

    width: 100%;
    max-width: 1280px;
    margin: 0 auto;

    display: flex;
    align-items: flex-start; /* antes stretch: eso estira las cards */
    justify-content: flex-end;
    gap: 22px;

    top: auto !important;
    left: 10% !important;
    transform: translateY(200px); /* misma posición */

    overflow: visible !important;
    pointer-events: auto;
}

/* CONTENEDOR DE CARDS */
.aulopolis-routes-section .hero-routes {
    max-width: min(1275px, calc(100vw - 80px)) !important;
    gap: 17px !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
}

/* CARDS TIPO CARTA ESPAÑOLA — 15% MÁS PEQUEÑAS */
.aulopolis-routes-section .hero-routes > * {
    width: clamp(153px, 9.8vw, 191px) !important;
    flex: 0 0 clamp(153px, 9.8vw, 191px) !important;
    max-width: 191px !important;

    height: clamp(255px, 16.2vw, 315px) !important;
    min-height: 255px !important;
    max-height: 315px !important;

    aspect-ratio: 5 / 8 !important;

    box-sizing: border-box !important;
}

/* Ajuste interno para que no se vean infladas */
.aulopolis-routes-section .hero-routes > * {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
    box-sizing: border-box !important;
}

/*
   IMPORTANTE:
   No mover la card con top, margin o left en hover.
   Si ya tienes otro CSS que hace translateY, scale agresivo,
   esto lo neutraliza.
*/

.aulopolis-routes-section .hero-routes > *:hover {
    transform: translateZ(0) !important;
}





/* =========================
   SIN OVERLAY — CIUDAD CLARA
========================= */

.aulopolis-hero::before,
.aulopolis-hero::after{
    content:none !important;
    display:none !important;
}

/* =========================
   FOG EFFECT
========================= */

.hero-fog{
    position:absolute;
    inset:-20%;
    z-index:2;

    background:
        radial-gradient(circle at 20% 50%,
        rgba(0,255,255,.15),
        transparent 35%),

        radial-gradient(circle at 80% 30%,
        rgba(168,85,247,.14),
        transparent 35%),

        radial-gradient(circle at 50% 100%,
        rgba(255,255,255,.06),
        transparent 40%);

    filter: blur(80px);

    animation: fogMove 18s ease-in-out infinite alternate;
}

@keyframes fogMove{
    from{
        transform: translateX(-40px) translateY(0px);
    }

    to{
        transform: translateX(40px) translateY(-20px);
    }
}

/* =========================
   GLOW ORBS
========================= */

/* FX LAYER */

.hero-effects{
    position: absolute;

    inset: 0;

    z-index: 200;

    pointer-events: none;

    overflow: visible;
}

/* GLOW */

.hero-glow{
    position:absolute;

    border-radius:50%;

    pointer-events:none;

    mix-blend-mode:screen;

    opacity:.95;

    filter: blur(120px);
}

/* CYAN */

.glow-1{
    width:500px;
    height:500px;

    background:#00fff2;

    top:-100px;
    right:-100px;

    animation:pulseGlow 7s ease-in-out infinite;
}

/* PURPLE */

.glow-2{
    width:420px;
    height:420px;

    background:#7c3aed;

    bottom:-100px;
    left:10%;

    animation:pulseGlow 10s ease-in-out infinite alternate;
}

/* GRID */

.hero-grid{
    position:absolute;
    inset:0;

    background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);

    background-size:80px 80px;

    opacity:.25;
}


/* =========================
   HERO ROUTES — MOBILE PREMIUM COMPACT
========================= */

@media (max-width: 767px) {

    .hero-routes {
        position: relative !important;

        width: 100vw !important;
        max-width: 100vw !important;

        top: auto !important;
        left: 50% !important;
        transform: translateX(-50%) translateY(-430px) !important;

        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;

        align-items: stretch !important;
        justify-content: flex-start !important;

        gap: 10px !important;

        margin: 4px 0 4px !important;
        padding: 0 18px 8px !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        scroll-snap-type: x mandatory !important;
        scroll-padding-left: 18px !important;

        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;

        z-index: 90 !important;
        pointer-events: auto !important;
    }

    .hero-routes::-webkit-scrollbar {
        display: none !important;
    }

    .hero-routes > * {
        position: relative !important;

        flex: 0 0 118px !important;
        width: 118px !important;
        min-width: 138px !important;
        max-width: 138px !important;

        min-height: 188px !important;
        max-height: 188px !important;

        padding: 11px 10px !important;

        border-radius: 18px !important;

        overflow: hidden !important;

        scroll-snap-align: start !important;

        background:
            radial-gradient(
                circle at 50% 55%,
                rgba(34, 211, 238, .16),
                transparent 44%
            ),
            linear-gradient(
                180deg,
                rgba(15, 23, 42, .50),
                rgba(2, 6, 23, .32)
            ) !important;

        border: 1px solid rgba(34, 211, 238, .42) !important;

        box-shadow:
            inset 0 0 20px rgba(255, 255, 255, .035),
            0 0 12px rgba(34, 211, 238, .26),
            0 0 30px rgba(37, 99, 235, .14),
            0 14px 34px rgba(0, 0, 0, .42) !important;

        backdrop-filter: blur(16px) saturate(160%) !important;
        -webkit-backdrop-filter: blur(16px) saturate(160%) !important;

        transition:
            transform .35s cubic-bezier(.2, .8, .2, 1),
            border-color .35s ease,
            box-shadow .35s ease !important;
    }

    .hero-routes > *::before {
        content: "" !important;
        position: absolute !important;
        inset: -1px !important;

        border-radius: inherit !important;

        padding: 1px !important;

        background:
            linear-gradient(
                135deg,
                rgba(34, 211, 238, .95),
                rgba(37, 99, 235, .18),
                rgba(168, 85, 247, .92)
            ) !important;

        opacity: .75 !important;

        -webkit-mask:
            linear-gradient(#000 0 0) content-box,
            linear-gradient(#000 0 0) !important;
        -webkit-mask-composite: xor !important;
        mask-composite: exclude !important;

        pointer-events: none !important;
    }

    .hero-routes > *::after {
        content: "" !important;
        position: absolute !important;

        inset: 0 !important;

        background:
            linear-gradient(
                120deg,
                transparent 0%,
                rgba(255, 255, 255, .16) 42%,
                transparent 62%
            ) !important;

        transform: translateX(-130%) !important;
        animation: heroRouteShineMobile 5.8s ease-in-out infinite !important;

        pointer-events: none !important;
    }

    .hero-routes > *:hover,
    .hero-routes > *:active {
        transform: translateY(-3px) scale(1.015) !important;

        border-color: rgba(34, 211, 238, .78) !important;

        box-shadow:
            0 0 18px rgba(34, 211, 238, .44),
            0 0 42px rgba(37, 99, 235, .24),
            0 16px 40px rgba(0, 0, 0, .52) !important;
    }

    .hero-routes img,
    .hero-routes svg {
        max-height: 74px !important;
        object-fit: contain !important;
    }

    .hero-routes h3,
    .hero-routes h4,
    .hero-routes strong {
        font-size: 14px !important;
        line-height: 1.1 !important;
        margin-bottom: 4px !important;
    }

    .hero-routes p,
    .hero-routes span {
        font-size: 8px !important;
        line-height: 1.1 !important;
    }

    .hero-actions {
        margin-top: -4px !important;
        position: relative !important;
        z-index: 95 !important;
    }
}

/* =========================
   HERO ROUTES — SMALL MOBILE
========================= */

@media (max-width: 390px) {

    .hero-routes {
        transform: translateX(-50%) translateY(-28px) !important;
        gap: 9px !important;
        padding: 0 16px 8px !important;
        margin-bottom: 0 !important;
    }

    .hero-routes > * {
        flex-basis: 108px !important;
        width: 108px !important;
        min-width: 108px !important;
        max-width: 108px !important;

        min-height: 138px !important;
        max-height: 138px !important;

        border-radius: 16px !important;
        padding: 10px 9px !important;
    }

    .hero-routes img,
    .hero-routes svg {
        max-height: 66px !important;
    }
}

/* =========================
   ANIMATION
========================= */

@keyframes heroRouteShineMobile {
    0%, 58% {
        transform: translateX(-130%);
        opacity: 0;
    }

    68% {
        opacity: .8;
    }

    84% {
        transform: translateX(130%);
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}
/* =========================================
   🌌 COSMIC WHITE
========================================= */

.theme-cosmic{

    background:
    radial-gradient(circle at top,#f8fbff 0%,#dbeafe 18%,#0f172a 65%,#02030a 100%);
}

.theme-cosmic .glow-1{

    background:#ffffff;

    opacity:.9;

    box-shadow:
    0 0 120px rgba(255,255,255,.65),
    0 0 220px rgba(147,197,253,.35);
}

.theme-cosmic .glow-2{

    background:#c4b5fd;

    opacity:.8;

    box-shadow:
    0 0 100px rgba(196,181,253,.45),
    0 0 180px rgba(255,255,255,.25);
}

.theme-cosmic .hero-grid{

    opacity:.16;

    background-image:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
}

/* =========================================
   ☢️ APOCALYPSE RED
========================================= */

.theme-apocalypse{

    background:
    radial-gradient(circle at top,#3b0000 0%,#140000 35%,#050505 100%);
}

.theme-apocalypse .glow-1{

    background:#ff2d2d;

    opacity:.9;

    box-shadow:
    0 0 120px rgba(255,0,0,.55),
    0 0 240px rgba(255,60,0,.28);
}

.theme-apocalypse .glow-2{

    background:#ff6b00;

    opacity:.75;

    box-shadow:
    0 0 100px rgba(255,80,0,.42),
    0 0 180px rgba(255,0,0,.22);
}

.theme-apocalypse .hero-grid{

    opacity:.12;

    background-image:
    linear-gradient(rgba(255,60,60,.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,60,60,.10) 1px, transparent 1px);
}

/* ANIM */

@keyframes pulseGlow{

    0%{
        transform:
        scale(1)
        translateY(0px);
    }

    50%{
        transform:
        scale(1.15)
        translateY(-20px);
    }

    100%{
        transform:
        scale(1)
        translateY(0px);
    }
}
/* =========================
   CONTENT LAYERS
========================= */

/* =========================================
   HERO LEFT
========================================= */

.hero-left{
    position: relative;
    z-index: 200;

    max-width: 650px;
}

/* =========================================
   TAG
========================================= */

.hero-tag{
    position: relative;
    top: -100px;


    display: inline-block;

    padding: 12px 22px;

    margin-bottom: 28px;

    border-radius: 999px;

    background:
    rgba(255,255,255,.05);

    border:
    1px solid rgba(0,255,255,.18);

    color: #8CFBFF;

    font-size: 13px;
    font-weight: 700;

    letter-spacing: 4px;

    text-transform: uppercase;

    backdrop-filter: blur(14px);

    box-shadow:
    0 0 20px rgba(0,255,255,.08),
    inset 0 0 20px rgba(255,255,255,.03);

    animation:
    pulseTag 4s ease-in-out infinite;
}

/* =========================================
   RETRO GLITCH TITLE
========================================= */


@keyframes wiggle {

    0%   { transform: skewX(24deg); }
    10%  { transform: skewX(-8deg); }
    20%  { transform: skewX(55deg); }
    30%  { transform: skewX(-90deg); }
    40%  { transform: skewX(29deg); }
    50%  { transform: skewX(-90deg); }
    60%  { transform: skewX(3deg); }
    70%  { transform: skewX(-2deg); }
    80%  { transform: skewX(1deg); }
    90%  { transform: skewX(10deg); }
    100% { transform: skewX(0deg); }
}

/* CONTAINER */

.hero-title{
    position: relative;

    top: 100px;

    display: flex;
    flex-direction: column;

    gap: 4px;

    z-index: 100;
}

/* TEXT */

.hero-title span{

    position: relative;

    display: block;

    font-family: 'IBM Plex Mono', monospace;

    font-size: clamp(52px, 6vw, 110px);

    line-height: .82;

    letter-spacing: -4px;

    color: rgba(255,255,255,.96);

    cursor: pointer;

    transition:
    transform .15s ease,
    text-shadow .15s ease;

    text-shadow:
        2px 2px rgba(246, 0, 153, 0.75),
       -2px -2px rgba(15, 210, 255, 0.75),
       -2px 0px rgba(255, 210, 0, 1);

    animation:
    idleGlitch 6s infinite;
}

/* HOVER */

.hero-title span:hover{

    animation:
    wiggle .18s 2;

    text-shadow:
        18px 8px rgba(246, 0, 153, 0.75),
       -20px -4px rgba(15, 210, 255, 0.75),
       -4px -2px rgba(255, 210, 0, 1);

    transform:
    translateX(2px)
    scale(1.02);
}

/* RANDOM GLITCH */

@keyframes idleGlitch{

    0%, 100%{
        transform: translate(0);
    }

    2%{
        transform: translate(-2px, 1px);
    }

    4%{
        transform: translate(2px,-1px);
    }

    6%{
        transform: translate(0);
    }

    45%{
        transform: translate(0);
    }

    46%{
        transform: translate(-3px,2px);
    }

    47%{
        transform: translate(3px,-2px);
    }

    48%{
        transform: translate(0);
    }
}

/* =========================================
   DESCRIPTION
========================================= */

.hero-description{
    position: relative;
    top: 150px;

    max-width: 520px;

    color: rgba(255,255,255,.78);

    font-size: 20px;

    line-height: 1.8;

    letter-spacing: .5px;
    z-index: 30;


    text-shadow:
    0 0 10px rgba(0,0,0,.45);

    animation:
    textFloat 6s ease-in-out infinite;
}

/* =========================================
   ANIMATIONS
========================================= */

@keyframes heroGlitch{

    0%,100%{
        transform: translate(0);
    }

    20%{
        transform: translate(-1px,1px);
    }

    40%{
        transform: translate(1px,-1px);
    }

    60%{
        transform: translate(-2px,0);
    }

    80%{
        transform: translate(2px,1px);
    }
}

/* CYAN */

@keyframes glitchLayer1{

    0%,100%{
        transform: translate(2px,-2px);
    }

    25%{
        transform: translate(5px,-1px);
    }

    50%{
        transform: translate(-2px,2px);
    }

    75%{
        transform: translate(3px,1px);
    }
}

/* PURPLE */

@keyframes glitchLayer2{

    0%,100%{
        transform: translate(-2px,2px);
    }

    25%{
        transform: translate(-5px,1px);
    }

    50%{
        transform: translate(2px,-2px);
    }

    75%{
        transform: translate(-3px,-1px);
    }
}

/* FLOAT DESCRIPTION */

@keyframes textFloat{

    0%,100%{
        transform: translateY(0px);
    }

    50%{
        transform: translateY(-6px);
    }
}

/* TAG */

@keyframes pulseTag{

    0%,100%{
        box-shadow:
        0 0 20px rgba(0,255,255,.08),
        inset 0 0 20px rgba(255,255,255,.03);
    }

    50%{
        box-shadow:
        0 0 40px rgba(0,255,255,.25),
        0 0 80px rgba(124,58,237,.15),
        inset 0 0 30px rgba(255,255,255,.05);
    }
}
/* =========================================
   COSMIC PLANETS
========================================= */

.city-node{
    position:absolute;

    width:130px;
    height:130px;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    overflow:hidden;

    text-decoration:none;

    isolation:isolate;

    backdrop-filter: blur(12px);

    transition:
    transform .45s ease,
    box-shadow .45s ease;

    z-index:999999;
     animation:
    floatPlanet 6s ease-in-out infinite;
}

/* =========================================
POSICION NODOS INDEX
========================================= */

.node-ai{
    --planet1:#00C7D9;
    --planet2:#002B5C;

    top:25%;
    left:40%;
    animation-delay: 0s;

}

.node-video{
    --planet1:#C026D3;
    --planet2:#2E1065;

    top:20%;
    left:55%;
    animation-delay: 1s;

}

.node-code{
    --planet1:#0084D1;
    --planet2:#001B44;

    top:48%;
    left:38%;
    animation-delay: 2s;

}

.node-cyber{
    --planet1:#00C98D;
    --planet2:#003B2C;

    bottom:25%;
    left:52%;
    animation-delay: 3s;

}

.node-data{
    --planet1:#00B8A9;
    --planet2:#003B5C;
    animation-delay: 1.5s;


    top:28%;
    right:37%;
}

.node-3d{
    --planet1:#7C3AED;
    --planet2:#1E1B4B;
    animation-delay: 2.5s;


    bottom:30%;
    right:12%;
}

.node-music{
    --planet1:#C2188B;
    --planet2:#3B0764;
    animation-delay: 4s;

    bottom:25%;
    left:35%;
}

.node-gamer{
    --planet1:#4ADE80;
    --planet2:#003566;
    animation-delay: 5s;

    bottom:24%;
    right:22%;
}


/* =========================================
🌌 NODOS UNIVERSO IA
========================================= */

.ai-route-world .node-ai{
    --planet1:#00C7D9;
    --planet2:#002B5C;

    top:25%;
    left:100%;

    transform:translateY(70px);

    animation-delay:0s;
}

.ai-route-world .node-video{
    --planet1:#C026D3;
    --planet2:#2E1065;

    top:20%;
    left:55%;

    transform:translateY(70px);

    animation-delay:1s;
}

.ai-route-world .node-code{
    --planet1:#0084D1;
    --planet2:#001B44;

    top:-20%;
    left:40%;

    transform:translateY(70px);

    animation-delay:2s;
}

.ai-route-world .node-cyber{
    --planet1:#00C98D;
    --planet2:#003B2C;

    bottom:25%;
    left:52%;

    transform:translateY(70px);

    animation-delay:3s;
}

.ai-route-world .node-data{
    --planet1:#00B8A9;
    --planet2:#003B5C;

    top:28%;
    right:37%;

    transform:translateY(70px);

    animation-delay:1.5s;
}

.ai-route-world .node-3d{
    --planet1:#7C3AED;
    --planet2:#1E1B4B;

    bottom:30%;
    right:12%;

    transform:translateY(70px);

    animation-delay:2.5s;
}

.ai-route-world .node-music{
    --planet1:#C2188B;
    --planet2:#3B0764;

    bottom:25%;
    left:-35%;

    transform:translateY(70px);

    animation-delay:4s;
}

.ai-route-world .node-gamer{
    --planet1:#4ADE80;
    --planet2:#003566;

    bottom:24%;
    right:22%;

    transform:translateY(70px);

    animation-delay:5s;
}









/* ANIMATION */

@keyframes floatPlanet{

    0%{
        transform:
        translateY(0px)
        translateX(0px);
    }

    25%{
        transform:
        translateY(-10px)
        translateX(2px);
    }

    50%{
        transform:
        translateY(-18px)
        translateX(-2px);
    }

    75%{
        transform:
        translateY(-8px)
        translateX(3px);
    }

    100%{
        transform:
        translateY(0px)
        translateX(0px);
    }
}

/* PLANET CORE */

.planet-core{
    position:absolute;
    inset:0;

    border-radius:50%;

    background:
    radial-gradient(circle at 30% 30%,
    rgba(255,255,255,.9) 0%,
    rgba(255,255,255,.18) 12%,
    transparent 18%),

    radial-gradient(circle at 70% 75%,
    rgba(255,255,255,.15) 0%,
    transparent 25%),
    
radial-gradient(circle at center,
color-mix(in srgb, var(--planet1) 75%, transparent) 0%,
color-mix(in srgb, var(--planet2) 65%, transparent) 70%,
rgba(5,5,16,.35) 100%);

    animation:
    planetPulse 8s ease-in-out infinite;
}

/* GALAXY CLOUDS */

.planet-atmosphere{
    position:absolute;
    inset:-15%;

    border-radius:50%;

    background:
    conic-gradient(
    from 0deg,
    transparent,
    rgba(255,255,255,.15),
    transparent,
    rgba(255,255,255,.08),
    transparent);

    mix-blend-mode:screen;

    animation:
    atmosphereSpin 18s linear infinite;
}

/* OUTER RING */

.galaxy-ring{
    position:absolute;

    width:180%;
    height:180%;

    border-radius:50%;

    border:
    1px solid rgba(255,255,255,.08);

    animation:
    orbitSpin 16s linear infinite;

    opacity:.6;
}

/* GLOW */

.planet-glow{
    position:absolute;
    inset:-25%;

    border-radius:50%;

    background:
    radial-gradient(circle,
    var(--planet1) 0%,
    transparent 70%);

    opacity:.45;

    filter:blur(25px);

    z-index:-1;
}

/* STARS */

.stars-layer{
    position:absolute;
    inset:0;

    animation:
    starsRotate 22s linear infinite;
}

.star{
    position:absolute;

    border-radius:50%;

    background:#fff;

    box-shadow:
    0 0 8px #fff;

    opacity:.9;
}

/* STAR POSITIONS */

.s1{
    width:3px;
    height:3px;
    top:18%;
    left:60%;
}

.s2{
    width:2px;
    height:2px;
    bottom:25%;
    left:28%;
}

.s3{
    width:4px;
    height:4px;
    top:50%;
    right:18%;
}

.s4{
    width:2px;
    height:2px;
    top:72%;
    right:38%;
}

/* TEXT */

.node-text{
    position:relative;

    z-index:10;

    color:#fff;

    font-size:13px;
    font-weight:900;

    letter-spacing:2px;

    text-shadow:
    0 0 10px rgba(255,255,255,.5),
    0 0 20px rgba(0,0,0,.8);
}

/* HOVER */

.city-node:hover{

    transform:
    scale(1.14)
    translateY(-8px);

    box-shadow:
    0 0 40px var(--planet1),
    0 0 80px rgba(255,255,255,.15);
}

/* ANIMATIONS */

@keyframes orbitSpin{
    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

@keyframes atmosphereSpin{
    from{
        transform:rotate(0deg) scale(1);
    }

    to{
        transform:rotate(-360deg) scale(1.05);
    }
}

@keyframes starsRotate{
    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

@keyframes planetPulse{

    0%{
        filter:brightness(1);
    }

    50%{
        filter:brightness(1.18);
    }

    100%{
        filter:brightness(1);
    }
}


/* =========================
   ALTURA DE BACKGROUND
========================= */
#rev_slider_1307_1,
#rev_slider_1307_1_wrapper,
rs-module,
rs-slide{
    height: 850px !important;
    overflow: visible !important;

}

.aulopolis-hero{
    min-height: 950px;
}

/* =========================
   ALTURA BACKGROUND — MÓVIL
========================= */

@media (max-width: 767px) {

    #rev_slider_1307_1,
    #rev_slider_1307_1_wrapper,
    rs-module,
    rs-slide {
        height: 980px !important;
        min-height: 980px !important;
        overflow: visible !important;
    }

    .aulopolis-hero {
        min-height: 980px !important;
        height: auto !important;
        overflow: visible !important;
    }
}
/* =========================
   CARD
========================= */

.route-card{
    position: relative;

    width: 220px;
    height: 220px;

    border-radius: 28px;

    overflow: hidden;

    text-decoration: none;

    background: rgba(255,255,255,.04);

    border: 1px solid rgba(255,255,255,.08);

    backdrop-filter: blur(12px);

    transition:
    transform .45s ease,
    box-shadow .45s ease,
    border .45s ease;

    transform-style: preserve-3d;

    box-shadow:
    0 20px 50px rgba(0,0,0,.35);
}
/* IMAGEN */

.route-image{
    position: absolute;
    inset: 0;
}

.route-image img{
    width: 100%;
    height: 100%;
    object-fit: cover;

    transition:
    transform .8s ease,
    filter .8s ease;
}

/* OVERLAY */

.route-overlay{
    position: absolute;
    inset: 0;

    background:
    linear-gradient(
        to top,
        rgba(0,0,0,.95) 0%,
        rgba(0,0,0,.55) 40%,
        rgba(0,0,0,.15) 100%
    );
}

/* CONTENT */

.route-content{
    position: absolute;

    bottom: 50;
    left: 0;

    width: 100%;

    padding: 18px;

    z-index: 5;
}

.route-number{
    display: inline-block;

    font-size: 20px;
    font-weight: 900;

    margin-bottom: 10px;

    color: rgba(255,255,255,.9);
    font-size:35px;
}

.route-content h3{
    color: #fff;

    font-size: 14px;
    line-height: 1.1;

    margin-bottom: 6px;

    font-weight: 800;
}

.route-content p{
    color: rgba(255,255,255,.65);

    font-size: 22px;

    margin-bottom: 12px;
}

/* TRACK COMPLETO */
.route-progress {
    width: 100% !important;
    height: 16px !important;

    display: block !important;
    position: relative !important;

    background: rgba(255, 255, 255, .12) !important;
    border: 1px solid rgba(255, 255, 255, .14) !important;

    border-radius: 999px !important;
    overflow: hidden !important;

    box-shadow:
        inset 0 0 12px rgba(0, 0, 0, .45),
        0 0 18px rgba(34, 211, 238, .12) !important;
}

/* RELLENO */
.route-progress span {
    display: block !important;
    height: 100% !important;
    min-width: 8px !important;

    border-radius: 999px !important;

    background: linear-gradient(
        90deg,
        #22d3ee 0%,
        #3b82f6 45%,
        #8b5cf6 100%
    ) !important;

    box-shadow:
        0 0 16px rgba(34, 211, 238, .65),
        0 0 34px rgba(59, 130, 246, .45) !important;

    transition: width .45s ease !important;
}

/* =========================
   HOVER EFFECTS
========================= */

.route-card:hover{
    transform:
    translateY(-18px)
    scale(1.04)
    rotate3d(1,1,0,2deg);

    border: 1px solid rgba(0,255,224,.45);

    box-shadow:
    0 30px 80px rgba(0,255,224,.18);
}

.route-card:hover .route-image img{
    transform: scale(1.12);
    filter: brightness(1.1);
}

/* =========================
   COLOR VARIANTS
========================= */

.ai-card{
    box-shadow:
    0 20px 60px rgba(0,140,255,.18);
}

.video-card{
    box-shadow:
    0 20px 60px rgba(168,85,247,.18);
}

.code-card{
    box-shadow:
    0 20px 60px rgba(0,255,180,.18);
}

/* =========================
   RESPONSIVE
========================= */

@media(max-width:1400px){

    .hero-title{
        font-size: 218px;
            top:100px;

    }

    .route-card{
        width: 180px;
        height: 180px;
    }
    
    .hero-routes{
    position: relative;
    top:600px;
    left:5%;
    z-index: 10000;

}
}

@media(max-width:1400px){


.hero-tag{
    display:inline-block;
    color:#00fff2;
    letter-spacing:4px;
    font-size:14px;
    margin-bottom:20px;
    text-shadow:0 0 15px rgba(0,255,242,.7);
    position:relative;
    top:50px;
}



.hero-description{
    margin-top:30px;
    font-size:18px;
    line-height:1.8;
    color:rgba(255,255,255,.72);
    max-width:500px;
    position:relative;
    top:150px;
}
}

@media(max-width:1100px){

    .aulopolis-hero{
        flex-direction: column;
        justify-content: center;

        padding: 60px 30px;
    }

    .hero-left{
        width: 100%;
        margin-bottom: 40px;
    }

    .hero-routes{
        width: 100%;
        justify-content: flex-start;

        overflow-x: auto;
        padding-bottom: 10px;
    }

}

@media(max-width:768px){

    .hero-title{
        font-size: 46px;
    }

    .hero-description{
        font-size: 15px;
    }

    .route-card{
        min-width: 200px;
        height: 320px;
    }

}

/* =========================
   ROUTE CARD — MOBILE
========================= */

@media (max-width: 767px) {

    .route-card {
        width: 165px !important;
        height: 220px !important;

        border-radius: 24px !important;

        background: rgba(255,255,255,.06) !important;

        border: 1px solid rgba(34,211,238,.28) !important;

        box-shadow:
            0 0 22px rgba(34,211,238,.14),
            0 18px 42px rgba(0,0,0,.46) !important;
    }

    .route-image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
    }

    .route-image img {
        width: 100% !important;
        height: 100% !important;

        object-fit: cover !important;
        object-position: center center !important;

        display: block !important;
    }

    .route-overlay {
        background:
            linear-gradient(
                to top,
                rgba(0,0,0,.98) 0%,
                rgba(0,0,0,.78) 42%,
                rgba(0,0,0,.16) 100%
            ) !important;
    }

    .route-content {
        padding: 16px !important;
    }

    .route-number {
        font-size: 40px !important;
        line-height: .9 !important;
        margin-bottom: 30px !important;
    }
    
        .hero-routes p, .hero-routes span {
        font-size: 10px !important;
        line-height: 1.1 !important;
    }

    .route-content h3 {
        font-size: 16px !important;
        line-height: 1.05 !important;
        margin-bottom: 8px !important;
        font-weight: 900 !important;
    }

    .route-content p {
        font-size: 14px !important;
        line-height: 0 !important;
        margin-bottom: 100px !important;
        color: rgba(255,255,255,.78) !important;
        position: relative;
        top: -15px;
    }
}


@media (max-width: 390px) {

    .route-card {
        width: 155px !important;
        height: 210px !important;
    }

    .route-number {
        font-size: 36px !important;
    }

    .route-content h3 {
        font-size: 17px !important;
    }

    .route-content p {
        font-size: 12px !important;
    }
}

/* =========================================
   GALAXY BUTTON ENCAPSULADO EN UNIVERSO
========================================= */

#iaCorePopup .galaxy-button,
#promptPopup .galaxy-button,
#chatgptPopup .galaxy-button,
#agentsPopup .galaxy-button,
#monetizePopup .galaxy-button,
#visionPopup .galaxy-button,
#nlpPopup .galaxy-button{

    position:relative;

    z-index:20;

    margin-top:40px;

    transform:translateY(0px);
}

/* =========================================
   GALAXY BUTTON
========================================= */

.galaxy-button{
    position: relative;
    z-index: 999999;
    margin-top: 40px;
    transform:translateY(300px);
}


.galaxy-btn{
    --active: 0;
    --hue: 190;

    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 18px 34px;

    border-radius: 999px;

    overflow: hidden;

    text-decoration: none;

    background:
    radial-gradient(
        circle at top right,
        rgba(0,255,255,.25),
        transparent 40%
    ),
    rgba(8,12,25,.92);

    border: 1px solid rgba(0,255,255,.25);

    backdrop-filter: blur(18px);

    box-shadow:
    0 0 30px rgba(0,255,255,.15),
    inset 0 0 25px rgba(255,255,255,.04);

    transition:
    transform .4s ease,
    box-shadow .4s ease,
    border .4s ease;
}

/* HOVER */

.galaxy-btn:hover{
    transform:
    translateY(-4px)
    scale(1.03);

    border: 1px solid rgba(0,255,255,.55);

    box-shadow:
    0 0 40px rgba(0,255,255,.35),
    0 0 90px rgba(124,58,237,.28);
}

/* TEXT */

.galaxy-btn .text{
    position: relative;
    z-index: 5;

    color: #fff;

    font-size: 14px;
    font-weight: 800;

    letter-spacing: 3px;

    text-transform: uppercase;
}

/* GALAXY */

.galaxy{
    position: absolute;
    inset: 0;

    opacity: 0;

    transition: opacity .4s ease;
}

.galaxy-btn:hover .galaxy{
    opacity: 1;
}

/* RING */

.galaxy__ring{
    position: absolute;

    width: 220%;
    height: 220%;

    top: 50%;
    left: 50%;

    transform:
    translate(-50%,-50%)
    rotateX(70deg);

    border-radius: 50%;
}

/* STARS */

.star{
    position: absolute;

    width: var(--size);
    height: var(--size);

    background: #fff;

    border-radius: 50%;

    opacity: var(--alpha);

    top: 50%;
    left: 50%;

    transform:
    translate(-50%,-50%)
    rotate(var(--angle))
    translateY(var(--distance));

    animation:
    orbit var(--duration) linear infinite;
}

/* STATIC */

.star--static{
    animation: none;

    width: 2px;
    height: 2px;

    opacity: .9;
}

/* SPARK */

.spark{
    position: absolute;
    inset: 0;

    border-radius: inherit;

    overflow: hidden;
}

.spark::before{
    content:"";

    position:absolute;

    width:200%;
    aspect-ratio:1;

    top:50%;
    left:50%;

    transform:
    translate(-50%,-50%)
    rotate(0deg);

    background:
    conic-gradient(
        transparent 0deg,
        rgba(0,255,255,.9) 20deg,
        transparent 60deg
    );

    animation:
    spinSpark 3s linear infinite;
}

/* =========================================================
   FLOATING MAP BUTTON (con estilos del AI button)
========================================================= */

.center-map-btn {
    position: fixed;
    right: 48%;
    bottom: 8px;
    width: 78px;
    height: 78px;
    z-index: 999999999;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    overflow: hidden;

    /* Estilos visuales del AI button */
background:
radial-gradient(
    circle at center,
    rgba(255,80,80,.14),
    rgba(255,30,30,.04)
);

backdrop-filter:blur(25px);
-webkit-backdrop-filter:blur(25px);

border:
1px solid rgba(255,0,64,.28);
border-radius:50%;

box-shadow:

0 0 30px rgba(255,40,40,.30),

0 0 80px rgba(255,0,80,.18),

0 0 140px rgba(255,40,40,.08),

inset 0 0 25px rgba(255,255,255,.04);

transition:
transform .35s ease,
box-shadow .35s ease;
}

.center-map-btn:hover {
    transform: scale(1.08);
    box-shadow: 0 0 45px rgba(124, 58, 237, .42),
                0 0 120px rgba(0, 219, 255, .18);
}

/* CORE - elemento central animado */
.map-core {
    position: absolute;
    width: 18px;
    height: 18px;
    border-radius: 50%;
background:
linear-gradient(
    135deg,
    #FF453A,
    #FF004D
);

box-shadow:

0 0 20px rgba(255,69,58,.85),

0 0 40px rgba(255,0,77,.55),

0 0 80px rgba(255,69,58,.18);
    animation: mapCorePulse 2.5s infinite ease;
}

@keyframes mapCorePulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.35); }
    100% { transform: scale(1); }
}

/* RING - anillo giratorio */
.map-ring {
    position: absolute;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .14);
    animation: mapRotate 8s linear infinite;
}

@keyframes mapRotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* TEXT - texto inferior */
.map-text {
    position: absolute;
    bottom: 14px;
    color: #FFFFFF;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 3px;
    opacity: .75;
}

/* =========================================================
   CENTER MAP BUTTON - MOBILE FIX FINAL
   Queda flotando arriba del HUD / menú inferior
========================================================= */

/* =========================================================
   CENTER MAP BUTTON · OCULTO EN MOBILE
========================================================= */

@media (max-width: 768px) {

    .center-map-btn {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}
/* =========================================================
   HINT ICON · OCULTO EN MOBILE
========================================================= */

@media (max-width: 768px) {

    .hint-icon {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

/* ========================================= */
/* 🌌 ESTRELLA MAP BUTTON */
/* ========================================= 

.center-map-btn{

    position:fixed;

    top:13%;
    left:6%;

    transform:translate(-50%, -50%);

    z-index:9999;
}

/* BACKDROP 

.center-map-btn .backdrop{
    position:absolute;
    inset:2px;

    border-radius:inherit;

    background:
    rgb(248 248 248 / 18%);

    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
}
/* ANIMATIONS 

@keyframes orbit{

    from{
        transform:
        translate(-50%,-50%)
        rotate(var(--angle))
        translateY(var(--distance));
    }

    to{
        transform:
        translate(-50%,-50%)
        rotate(calc(var(--angle) + 360deg))
        translateY(var(--distance));
    }

}

@keyframes spinSpark{

    from{
        transform:
        translate(-50%,-50%)
        rotate(0deg);
    }

    to{
        transform:
        translate(-50%,-50%)
        rotate(360deg);
    }

}*/

.modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(10px);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 999999999;
}

/* CONTENEDOR SCI-FI */
.modal-content.futuristic {
  position: relative;
  width: 380px;
  padding: 24px;
  border-radius: 16px;

  background: rgba(10, 12, 20, 0.85);
  border: 1px solid rgba(0, 255, 255, 0.2);

  box-shadow:
    0 0 20px rgba(0, 255, 255, 0.2),
    inset 0 0 20px rgba(0, 255, 255, 0.05);

  color: #00f6ff;
  font-family: "Arial", sans-serif;

  overflow: hidden;
}

/* EFECTO ESCANEO */
.scanline {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(0, 255, 255, 0.05),
    transparent
  );
  animation: scan 3s linear infinite;
  pointer-events: none;
}

@keyframes scan {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(100%); }
}

/* BORDE GLOW */
.glow-border {
  position: absolute;
  inset: 0;
  border-radius: 16px;
  box-shadow: 0 0 25px rgba(0, 255, 255, 0.3);
  pointer-events: none;
}

/* TEXTO */
.question {
  font-size: 18px;
  margin-bottom: 16px;
  text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

/* BOTONES */
.options button,
.register button {
  width: 100%;
  margin-top: 8px;
  padding: 10px;
  background: transparent;
  border: 1px solid #00f6ff;
  color: #00f6ff;
  cursor: pointer;
  transition: 0.2s;
}

.options button:hover,
.register button:hover {
  background: rgba(0, 255, 255, 0.1);
  box-shadow: 0 0 10px rgba(0, 255, 255, 0.4);
}

/* INPUTS */
.register input {
  width: 100%;
  margin-top: 8px;
  padding: 10px;
  background: rgba(0,0,0,0.4);
  border: 1px solid rgba(0, 255, 255, 0.3);
  color: #00f6ff;
}

.hidden {
  display: none !important;
}

/* ========================================= */
/* 🔴 BOTÓN ÚNICO ORBE ROJO */
/* ========================================= */

.universe-theme-toggle {
    position: fixed !important;
    top: 50% !important;
    right: 24px !important;
    transform: translateY(-50%) !important;

    width: 46px !important;
    height: 46px !important;

    display: grid !important;
    place-items: center !important;

    padding: 0 !important;
    border: none !important;
    outline: none !important;

    background: transparent !important;
    box-shadow: none !important;

    cursor: pointer !important;
    z-index: 999999 !important;
}

.theme-orb {
    width: 34px !important;
    height: 34px !important;
    border-radius: 50% !important;

    background:
        radial-gradient(circle at 30% 25%,
            #ffffff 0%,
            #ffb4b4 12%,
            #ff1f1f 38%,
            #9f0000 72%,
            #160000 100%
        ) !important;

    box-shadow:
        0 0 14px rgba(255, 0, 0, .95),
        0 0 32px rgba(255, 60, 0, .65),
        0 0 70px rgba(255, 0, 0, .30),
        inset -6px -8px 14px rgba(0, 0, 0, .45),
        inset 4px 4px 10px rgba(255, 255, 255, .38) !important;

    transition:
        transform .28s ease,
        filter .28s ease,
        box-shadow .28s ease !important;
}

.universe-theme-toggle:hover .theme-orb {
    transform: scale(1.18) rotate(180deg) !important;

    filter:
        saturate(1.45)
        brightness(1.28)
        contrast(1.08) !important;

    animation:
        stellarOrbPulse 1.25s ease-in-out infinite !important;

    box-shadow:
        0 0 14px rgba(255, 255, 255, .95),
        0 0 28px rgba(255, 80, 20, .95),
        0 0 58px rgba(255, 0, 0, .78),
        0 0 110px rgba(255, 120, 0, .45),
        0 0 180px rgba(255, 0, 0, .22),
        inset -6px -8px 16px rgba(0, 0, 0, .45),
        inset 5px 5px 12px rgba(255, 255, 255, .55) !important;
}

@keyframes stellarOrbPulse {

    0% {
        filter:
            saturate(1.2)
            brightness(1)
            contrast(1) !important;

        box-shadow:
            0 0 8px rgba(255, 255, 255, .55),
            0 0 18px rgba(255, 80, 20, .55),
            0 0 34px rgba(255, 0, 0, .38),
            0 0 70px rgba(255, 120, 0, .18),
            inset -6px -8px 16px rgba(0, 0, 0, .45),
            inset 5px 5px 12px rgba(255, 255, 255, .35);
    }

    45% {
        filter:
            saturate(1.7)
            brightness(1.55)
            contrast(1.18) !important;

        box-shadow:
            0 0 18px rgba(255, 255, 255, 1),
            0 0 42px rgba(255, 115, 35, 1),
            0 0 90px rgba(255, 0, 0, .92),
            0 0 160px rgba(255, 170, 0, .58),
            0 0 240px rgba(255, 0, 0, .32),
            inset -6px -8px 16px rgba(0, 0, 0, .45),
            inset 5px 5px 14px rgba(255, 255, 255, .72);
    }

    100% {
        filter:
            saturate(1.25)
            brightness(1.08)
            contrast(1.02) !important;

        box-shadow:
            0 0 10px rgba(255, 255, 255, .45),
            0 0 22px rgba(255, 80, 20, .45),
            0 0 46px rgba(255, 0, 0, .32),
            0 0 90px rgba(255, 120, 0, .16),
            inset -6px -8px 16px rgba(0, 0, 0, .45),
            inset 5px 5px 12px rgba(255, 255, 255, .35);
    }
}
.universe-theme-toggle:active .theme-orb {
    transform: scale(.92) !important;
}
/* ========================================= */
/* ✨ STAR LAYERS */
/* ========================================= */

.ai-route-world::before,
.ai-route-world::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
}

/* SMALL STARS */

.ai-route-world::before{

    background-image:
    radial-gradient(2px 2px at 20px 30px, rgba(255,255,255,.9), transparent),
    radial-gradient(1.5px 1.5px at 120px 80px, rgba(255,255,255,.7), transparent),
    radial-gradient(2px 2px at 250px 150px, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 400px 250px, rgba(255,255,255,.6), transparent),
    radial-gradient(2px 2px at 550px 100px, rgba(255,255,255,.9), transparent),
    radial-gradient(1px 1px at 700px 200px, rgba(255,255,255,.7), transparent);

    background-size:800px 400px;

    animation:starMove 120s linear infinite;

    opacity:.8;
}

/* BIG GLOW STARS */

.ai-route-world::after{

    background-image:
    radial-gradient(circle at 15% 25%, rgba(255,255,255,.9) 0px, transparent 4px),
    radial-gradient(circle at 75% 40%, rgba(0,217,255,.9) 0px, transparent 6px),
    radial-gradient(circle at 45% 80%, rgba(255,255,255,.7) 0px, transparent 5px),
    radial-gradient(circle at 90% 15%, rgba(123,44,255,.9) 0px, transparent 7px);

    animation:twinkle 6s ease-in-out infinite alternate;

    opacity:.9;
}

/* ========================================= */
/* 🌌 SPACE GRID */
/* ========================================= */

.space-bg{
    position:absolute;
    inset:0;

    background-image:
    radial-gradient(rgba(255,255,255,.15) 1px, transparent 1px);

    background-size:60px 60px;

    opacity:.08;
}

/* ========================================= */
/* ☁️ NEBULAS */
/* ========================================= */

.nebula{
    position:absolute;
    border-radius:50%;
    filter:blur(100px);

    animation:floatNebula 12s ease-in-out infinite alternate;
}

.nebula-1{
    width:500px;
    height:500px;

    background:#00d9ff33;

    top:-100px;
    left:-100px;
}

.nebula-2{
    width:400px;
    height:400px;

    background:#7b2cff33;

    bottom:0;
    right:-100px;
}

/* ========================================= */
/* 🚀 HEADER */
/* ========================================= */

.route-header{
    position:relative;
    z-index:2;

    text-align:center;

    max-width:900px;

    margin:auto auto 120px auto;
}

.route-badge{

    display:inline-block;

    padding:10px 20px;

    border-radius:999px;

    border:1px solid rgba(0,255,255,.3);

    color:#dff8ff;

    margin-bottom:25px;

    background:rgba(255,255,255,.04);

    backdrop-filter:blur(10px);

    box-shadow:
    0 0 20px rgba(0,217,255,.15);
}

.route-header h1{

    font-size:70px;
    font-weight:900;

    line-height:1.1;

    color:white;

    margin-bottom:25px;
}

.route-header h1 span{

    color:#73e7ff;

    text-shadow:
    0 0 15px rgba(0,255,255,.7),
    0 0 40px rgba(0,150,255,.5);
}

.route-header p{

    color:rgba(255,255,255,.7);

    font-size:20px;

    line-height:1.8;
}

/* ========================================= */
/* ✨ ANIMATIONS */
/* ========================================= */

@keyframes twinkle{
    0%{
        opacity:.4;
        transform:scale(1);
    }

    100%{
        opacity:1;
        transform:scale(1.08);
    }
}

@keyframes starMove{
    from{
        transform:translateY(0);
    }

    to{
        transform:translateY(-400px);
    }
}

@keyframes floatNebula{
    0%{
        transform:translateY(0) translateX(0);
    }

    100%{
        transform:translateY(20px) translateX(20px);
    }
}
/* TREE */

.skill-tree{

    position:relative;

    width:1200px;

    max-width:95%;

    margin:auto;

    z-index:2;
}

.tree-line{

    position:absolute;

    left:50%;
    top:0;

    width:4px;
    height:100%;

    transform:translateX(-50%);

    background:
    linear-gradient(
    to bottom,
    transparent,
    #00d9ff,
    #7b2cff,
    transparent
    );

    box-shadow:
    0 0 20px rgba(0,255,255,.5);
}

/* BLOCK */

.tree-block{

    position:relative;

    display:flex;
    align-items:center;
    justify-content:space-between;

    margin-bottom:160px;
}

.tree-block.left{
    flex-direction:row;
}

.tree-block.right{
    flex-direction:row-reverse;
}

/* NODE */

.big-node{
    transform:scale(1.25);
}

.city-node{
    z-index:3;
}

/* CARD */

.route-card{

    width:420px;

    position:relative;

    overflow:hidden;

    padding:12px;

    border-radius:28px;

    background:
    linear-gradient(
    145deg,
    rgba(255,255,255,.05),
    rgba(255,255,255,.02)
    );

    border:1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(20px);

    box-shadow:
    0 0 40px rgba(0,0,0,.45);

    transition:.4s;
}

.route-card:hover{

    transform:
    translateY(-10px)
    scale(1.02);

    box-shadow:
    0 0 40px rgba(0,255,255,.15);
}

.active-card{

    border:1px solid rgba(0,255,255,.4);

    box-shadow:
    0 0 50px rgba(0,255,255,.18);
}

/* CARD CONTENT */

.route-number{

    display:inline-block;

    margin-bottom:18px;

    color:#73e7ff;

    font-size:30px;

    letter-spacing:2px;
}

.route-content h3{

    color:white;

    font-size:32px;

    margin-bottom:18px;
    display:none;
}

.route-content p{

    color:rgba(255,255,255,.7);

    line-height:1.5;

    margin-bottom:30px;
    font-size:20px;
}

/* PROGRESS */

.route-progress{

    width:100%;
    height:25px;

    border-radius:999px;

    overflow:hidden;

    background:rgba(255,255,255,.08);
}

.route-progress span{

    display:block;
    height:100%;

    border-radius:999px;

    background:
    linear-gradient(
    90deg,
    #00d9ff,
    #0066ff
    );

    box-shadow:
    0 0 20px rgba(0,255,255,.7);
}

/* MOBILE */

@media(max-width:991px){

    .tree-block,
    .tree-block.left,
    .tree-block.right{

        flex-direction:column;

        gap:40px;

        text-align:center;
    }

    .tree-line{
        left:50%;
    }

    .route-card{
        width:100%;
    }

    .route-header h1{
        font-size:32px;
    }

}

/* ========================================= */
/* ⚡ NEXT LEVEL EFFECTS */
/* ========================================= */


/* ========================================= */
/* 🌌 ENERGÍA EN LA LÍNEA CENTRAL */
/* ========================================= */

.tree-line{
    overflow:hidden;
}

.tree-line::after{

    content:"";

    position:absolute;

    left:50%;

    width:14px;
    height:180px;

    transform:translateX(-50%);

    background:
    linear-gradient(
    to bottom,
    transparent,
    rgba(0,255,255,.95),
    rgba(0,120,255,.95),
    transparent
    );

    filter:blur(10px);

    animation:energyFlow 4s linear infinite;
}

@keyframes energyFlow{

    0%{
        top:-200px;
        opacity:0;
    }

    10%{
        opacity:1;
    }

    90%{
        opacity:1;
    }

    100%{
        top:100%;
        opacity:0;
    }

}


/* ========================================= */
/* 🌠 NODOS FLOTANTES */
/* ========================================= */

.city-node{

    animation:
    floatingPlanet 5s ease-in-out infinite;

    transition:.35s;
}

.city-node:hover{

    transform:
    scale(1.08)
    translateY(-10px);

    filter:
    drop-shadow(0 0 25px rgba(0,255,255,.7));
}

@keyframes floatingPlanet{

    0%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-12px);
    }

    100%{
        transform:translateY(0px);
    }

}


/* ========================================= */
/* ✨ PULSO EN PLANETAS */
/* ========================================= */

.planet-glow{

    animation:
    pulseGlow 3s ease-in-out infinite;
}

@keyframes pulseGlow{

    0%{
        opacity:.5;
        transform:scale(1);
    }

    50%{
        opacity:1;
        transform:scale(1.15);
    }

    100%{
        opacity:.5;
        transform:scale(1);
    }

}


/* ========================================= */
/* 🪐 ROTACIÓN DE ANILLOS */
/* ========================================= */

.galaxy-ring{

    animation:
    rotateRing 18s linear infinite;
}

@keyframes rotateRing{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }

}


/* ========================================= */
/* 🌌 GLASSMORPHISM PRO */
/* ========================================= */

.route-card{

    background:
    linear-gradient(
    145deg,
    rgba(255,255,255,.08),
    rgba(255,255,255,.02)
    );

    border:
    1px solid rgba(255,255,255,.08);

    backdrop-filter:
    blur(24px);

    -webkit-backdrop-filter:
    blur(24px);

    overflow:hidden;
}

/* SHINE FX 

.route-card::before{

    content:"";

    position:absolute;

    top:-150%;
    left:-40%;

    width:80px;
    height:300%;

    background:
    linear-gradient(
    to bottom,
    transparent,
    rgba(255,255,255,.18),
    transparent
    );

    transform:
    rotate(25deg);

    transition:1s;
}*/

.route-card:hover::before{

    left:140%;
}


/* ========================================= */
/* 🌠 ESTRELLAS EN MOVIMIENTO */
/* ========================================= */

.space-bg{

    animation:
    moveStars 120s linear infinite;
}

@keyframes moveStars{

    from{
        background-position:0 0;
    }

    to{
        background-position:0 2000px;
    }

}


/* ========================================= */
/* ⚡ EFECTO HOVER CARDS */
/* ========================================= */

.route-card:hover{

    transform:
    translateY(-14px)
    scale(1.03);

    border:
    1px solid rgba(0,255,255,.35);

    box-shadow:
    0 0 50px rgba(0,255,255,.12),
    0 0 120px rgba(0,80,255,.12);
}


/* ========================================= */
/* 🌌 TEXTO GALÁCTICO */
/* ========================================= */

.route-header h1 span{

    animation:
    textPulse 4s ease-in-out infinite;
}

@keyframes textPulse{

    0%{

        text-shadow:
        0 0 10px rgba(0,255,255,.4),
        0 0 30px rgba(0,120,255,.3);
    }

    50%{

        text-shadow:
        0 0 20px rgba(0,255,255,.95),
        0 0 50px rgba(0,120,255,.8),
        0 0 90px rgba(0,120,255,.5);
    }

    100%{

        text-shadow:
        0 0 10px rgba(0,255,255,.4),
        0 0 30px rgba(0,120,255,.3);
    }

}


/* ========================================= */
/* 🌫️ ATMÓSFERA CINEMÁTICA */
/* ========================================= */

.ai-route-world::after{

    content:"";

    position:absolute;

    inset:0;

    background:
    radial-gradient(
    circle at center,
    transparent 40%,
    rgba(0,0,0,.45) 100%
    );

    pointer-events:none;
}


/* ========================================= */
/* 🔒 NODOS BLOQUEADOS */
/* ========================================= */

.locked{

    opacity:.35;

    filter:
    grayscale(1);
}

.locked .route-card{

    border:
    1px solid rgba(255,255,255,.04);
}

.locked::after{

    content:"🔒";

    position:absolute;

    top:-20px;
    right:-10px;

    font-size:18px;

    z-index:10;
}


/* ========================================= */
/* 📱 MOBILE */
/* ========================================= */

@media(max-width:768px){

    .city-node{

        transform:scale(.85);
    }

    .route-card{

        padding:25px;
    }

}

.buy-route-btn{

    margin-top:35px;

    display:flex;

    justify-content:flex-start;
}

.buy-route-btn .galaxy-btn{

    transform:scale(.9);
}

.buy-route-btn .galaxy-btn:hover{

    transform:scale(1);
}

/* ========================================= */
/* 🌌 IA CORE POPUP */
/* ========================================= */

.ia-popup{

    position:fixed;

    inset:0;

    z-index:999999;

    display:flex;
    justify-content:center;
    align-items:center;

    padding:28px;
}

.hidden{
    display:none;
}

/* OVERLAY */

.ia-popup-overlay{

    position:absolute;
    inset:0;

    background:
    rgba(0,0,0,.82);

    backdrop-filter:
    blur(12px);
}

/* CONTENT */

.ia-popup-content{

    position:relative;

    z-index:2;

    width:950px;

    max-width:95%;

    max-height:85vh;

    overflow-y:auto;

    border-radius:28px;

    padding:28px;

    background:
    linear-gradient(
    145deg,
    rgba(10,20,40,.96),
    rgba(4,8,20,.98)
    );

    border:
    1px solid rgba(0,255,255,.15);

    box-shadow:
    0 0 60px rgba(0,255,255,.10);

    animation:
    popupEnter .35s ease;
}

/* ENTER */

@keyframes popupEnter{

    from{
        opacity:0;
        transform:
        scale(.9)
        translateY(40px);
    }

    to{
        opacity:1;
        transform:
        scale(1)
        translateY(0);
    }

}

/* CLOSE */

.ia-close{

    position:absolute;

    top:25px;
    right:25px;

    width:50px;
    height:50px;

    border-radius:50%;

    border:none;

    cursor:pointer;

    background:
rgb(0 255 255 / 0%);

    color:white;

    font-size:20px;

    transition:.3s;
        z-index:999999 !important;

}

.ia-close:hover{

    transform:rotate(90deg) scale(1.12);

    background:
        radial-gradient(
            circle at center,
            rgba(34,211,238,.22),
            rgba(59,130,246,.10) 45%,
            rgba(0,255,255,0) 75%
        );

    color:#67e8f9;

    box-shadow:
        0 0 18px rgba(34,211,238,.55),
        0 0 42px rgba(59,130,246,.35),
        inset 0 0 14px rgba(34,211,238,.22);

    text-shadow:
        0 0 10px rgba(103,232,249,.9);
}

/* HEADER */

.ia-popup-header{

    text-align:center;

    margin-bottom:35px;
}

.ia-badge{

    display:inline-block;

    padding:10px 20px;

    border-radius:999px;

    border:
    1px solid rgba(0,255,255,.2);

    color:#c8f6ff;

    margin-bottom:25px;
}

.ia-popup-header h2{

    color:white;

    font-size:42px;

    line-height:1.1;

    margin-bottom:10px;

    font-weight:900;
}

.ia-popup-header h2 span{

    color:#70e9ff;

    text-shadow:
    0 0 20px rgba(0,255,255,.8);
}

.ia-popup-header p{

    color:
    rgba(255,255,255,.7);

    font-size:16px;
}

/* GRID */

.ia-grid{

    display:grid;

    grid-template-columns:
    repeat(4,1fr);

    gap:14px;
}

/* CARD */

.ia-card{

    position:relative;

     padding:18px;

    border-radius:18px;

    min-height:170px;

    background:
    linear-gradient(
    145deg,
    rgba(255,255,255,.04),
    rgba(255,255,255,.015)
    );

    border:
    1px solid rgba(255,255,255,.05);

    transition:.3s;
}

.ia-card:hover{

    transform:
    translateY(-8px)
    scale(1.03);

    border:
    1px solid rgba(0,255,255,.28);

    box-shadow:
    0 0 30px rgba(0,255,255,.12);
}

/* ICON */

.ia-icon{

     font-size:26px;

    margin-bottom:14px;
}

/* TEXT */

.ia-card h3{

    color:white;

   font-size:16px;

    margin-bottom:8px;
}

.ia-card p{

    color:
    rgba(255,255,255,.68);

  font-size:13px;

    line-height:1.45;}

/* FOOTER */

.ia-popup-footer{

    margin-top:60px;

    text-align:center;
}

/* BUTTON */

.ia-start-btn{

    display:inline-flex;

    align-items:center;
    justify-content:center;

    padding:18px 42px;

    border-radius:999px;

    text-decoration:none;

    color:white;

    font-weight:700;

    letter-spacing:1px;

    background:
    linear-gradient(
    90deg,
    #00d9ff,
    #0066ff
    );

    box-shadow:
    0 0 40px rgba(0,255,255,.35);

    transition:.35s;
}

.ia-start-btn:hover{

    transform:
    translateY(-5px)
    scale(1.03);

    box-shadow:
    0 0 60px rgba(0,255,255,.5);
}

/* MOBILE */

@media(max-width:991px){

    .ia-grid{

        grid-template-columns:
        repeat(2,1fr);
    }

    .ia-popup-content{

        padding:24px;
    }

    .ia-popup-header h2{

        font-size:36px;
    }

}

@media(max-width:640px){

    .ia-grid{

        grid-template-columns:
        1fr;
    }

}

.lesson-modal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.85);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.lesson-content {
    width: 90%;
    max-width: 700px;
    background: #0b0f1a;
    padding: 20px;
    border-radius: 20px;
    color: white;
}
.lesson-content h2 {
    color: #ffffff;
}

.lesson-video {
    margin-top: 15px;
    border-radius: 12px;
    overflow: hidden;
}



/* ========================================= */
/* 🌌 AURORAS */
/* ========================================= */

.aurora{
    position:absolute;

    width:700px;
    height:700px;

    border-radius:50%;

    filter:blur(120px);

    opacity:.35;

    mix-blend-mode:screen;

    animation:auroraFloat 18s ease-in-out infinite alternate;
}

.aurora-1{
    background:#00d9ff55;

    top:-200px;
    left:-150px;
}

.aurora-2{
    background:#7b2cff55;

    bottom:-250px;
    right:-150px;
}

/* ========================================= */
/* 🌌 GALAXIES */
/* ========================================= */

.galaxy{
    position:absolute;

    border-radius:50%;

    filter:blur(2px);

    opacity:.25;

    animation:rotateGalaxy 80s linear infinite;
}

.galaxy-1{
    width:500px;
    height:500px;

    top:10%;
    right:10%;

    background:
    radial-gradient(circle,
    rgba(255,255,255,.7) 0%,
    rgba(0,217,255,.2) 30%,
    transparent 70%);
}

.galaxy-2{
    width:400px;
    height:400px;

    bottom:5%;
    left:5%;

    background:
    radial-gradient(circle,
    rgba(255,255,255,.7) 0%,
    rgba(123,44,255,.2) 30%,
    transparent 70%);
}

/* ========================================= */
/* 🪐 PLANETS */
/* ========================================= */

.planet{
    position:absolute;

    border-radius:50%;

    box-shadow:
    inset -20px -20px 40px rgba(0,0,0,.5),
    0 0 60px rgba(255,255,255,.08);

    animation:planetFloat 12s ease-in-out infinite alternate;
}

.planet-1{
    width:120px;
    height:120px;

    top:18%;
    left:12%;

    background:
    radial-gradient(circle at 30% 30%,
    #73e7ff,
    #0b3c5d 70%);
}

.planet-2{
    width:180px;
    height:180px;

    bottom:10%;
    right:12%;

    background:
    radial-gradient(circle at 30% 30%,
    #c084fc,
    #2b1055 70%);
}

/* ========================================= */
/* ✨ NOISE */
/* ========================================= */

.noise-overlay{
    position:absolute;
    inset:0;

    opacity:.04;

    z-index:2;

    pointer-events:none;

    background-image:url("https://www.transparenttextures.com/patterns/asfalt-dark.png");
}

/* ========================================= */
/* 💡 INTERACTIVE GLOW */
/* ========================================= */

.mouse-glow{
    position:absolute;

    width:500px;
    height:500px;

    border-radius:50%;

    background:
    radial-gradient(circle,
    rgba(0,217,255,.18) 0%,
    transparent 70%);

    transform:translate(-50%,-50%);

    pointer-events:none;

    z-index:1;

    transition:
    transform .08s linear,
    opacity .3s ease;
}



/* ========================================= */
/* 🎬 ANIMATIONS */
/* ========================================= */

@keyframes auroraFloat{

    0%{
        transform:translateY(0) translateX(0);
    }

    100%{
        transform:translateY(40px) translateX(30px);
    }
}

@keyframes rotateGalaxy{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

@keyframes planetFloat{

    0%{
        transform:translateY(0);
    }

    100%{
        transform:translateY(20px);
    }
}

/* ========================================= */
/* 🌌 UNIVERSE SYSTEM */
/* ========================================= */

.universe-wrapper{

    position:relative;

    width:100%;
    height:100vh;

    overflow:auto;

    cursor:grab;

    background:transparent;

    z-index:20;
}

body:not(.ai-route-page) {
    overflow-y: auto !important;
}

::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: #050816;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #22d3ee, #2563eb);
    border-radius: 20px;
}

::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #67e8f9, #3b82f6);
}

/* ========================================= */
/* 🌌 GIANT MAP */
/* ========================================= */

.universe-map{

    position:relative;

    width:6000000px;
    min-width:6000000px;

    height:4000000px;
    min-height:4000000px;
}
/* ========================================= */
/* 🌌 NODES */
/* ========================================= */

.tree-block{
    position:absolute;
}
/* =========================================
🌌 NODE PLANET COLORS
========================================= */

.ai-route-world .node-1 .city-node{
    --planet1:#06B6D4;
    --planet2:#1E293B;
}

.ai-route-world .node-2 .city-node{
    --planet1:#8B5CF6;
    --planet2:#312E81;
}

.ai-route-world .node-3 .city-node{
    --planet1:#10B981;
    --planet2:#064E3B;
}

.ai-route-world .node-4 .city-node{
    --planet1:#F97316;
    --planet2:#7C2D12;
}

.ai-route-world .node-5 .city-node{
    --planet1:#EAB308;
    --planet2:#713F12;
}

.ai-route-world .node-6 .city-node{
    --planet1:#38BDF8;
    --planet2:#0F172A;
}
/* =========================================
🌌 NODES POSITION IA UNIVERSE
========================================= */
/* IZQUIERDA */

.node-1{
    top:250px;
    left:calc(50% - 550px);
}

.node-3{
    top:1050px;
    left:calc(50% - 550px);
}

.node-5{
    top:1850px;
    left:calc(50% - 550px);
}

/* DERECHA */

.node-2{
    top:650px;
    right:calc(50% + 35px);
}

.node-4{
    top:1450px;
    right:calc(50% + 35px);
}

.node-6{
    top:2250px;
    right:calc(50% + 35px);
}

/* ========================================= */
/* 🌌 AI ROUTE ONLY */
/* ========================================= */

.ai-route-world .tree-block{

    position:absolute;

    width:420px;
}




/* CARD */

.ai-route-world .route-card{

    position:relative;

    z-index:1;

    padding:40px;

 overflow:hidden;

    min-height:190px;
    
}
.ai-route-world .tree-block.right .route-card{

    padding-left:140px;
}

.ai-route-world .route-header{

    position:relative;

    z-index:100;
}

.space-bg,
.nebula,
.galaxy,
.planet,
.aurora,
.noise-overlay,
.grid-floor,
.stars{

    position:absolute;

    z-index:1;
}
.space-bg,
.nebula,
.galaxy,
.planet,
.aurora,
.noise-overlay,
.grid-floor,
.stars{

    pointer-events:none;
}

.universe-hint{

    position:fixed;

    bottom:170px;
    left:150px;

    z-index:999;

    display:flex;
    align-items:center;
    gap:12px;

    padding:14px 18px;

    border-radius:18px;

    backdrop-filter:blur(14px);

    background:rgba(7,12,28,.55);

    border:1px solid rgba(0,255,255,.15);

    color:#dffcff;

    font-size:14px;

    box-shadow:
    0 0 30px rgba(0,255,255,.12);

    animation:floatHint 4s ease-in-out infinite;
}

.hint-icon{

    color:#5ffbff;

    font-size:18px;

    animation:pulseHint 2s infinite;
}

@keyframes pulseHint{

    0%{
        opacity:.4;
        transform:scale(1);
    }

    50%{
        opacity:1;
        transform:scale(1.2);
    }

    100%{
        opacity:.4;
        transform:scale(1);
    }
}

@keyframes floatHint{

    0%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-5px);
    }

    100%{
        transform:translateY(0px);
    }
}

/* ========================================= */
/* 🌌 ZOOM HINT */
/* ========================================= */

.zoom-hint{

    position:fixed;

    bottom:95px;
    left:150px;

    z-index:999;

    display:inline-flex;

    align-items:center;

    gap:12px;

    width:auto;

    max-width:400px;

    padding:14px 18px;

    border-radius:18px;

    backdrop-filter:blur(14px);

    background:rgba(7,12,28,.55);

    border:1px solid rgba(0,255,255,.15);

    color:#dffcff;

    font-size:14px;

    white-space:nowrap;
}

.zoom-hint .hint-icon{

    color:#6ff7ff;

    font-size:20px;

    animation:zoomPulse 2s infinite;
}

/* ICON ANIMATION */

@keyframes zoomPulse{

    0%{
        transform:scale(1);
        opacity:.5;
    }

    50%{
        transform:scale(1.25);
        opacity:1;
    }

    100%{
        transform:scale(1);
        opacity:.5;
    }
}

/* Tooltip */
.universe-hint::after {
    content: attr(data-tooltip);
    position: absolute;
    left: calc(100% + 14px);
    bottom: 50%;
    transform: translateY(50%) translateX(-8px);
    min-width: 230px;
    max-width: 280px;
    padding: 12px 16px;
    border-radius: 16px;
    background: rgba(2, 6, 23, .92);
    border: 1px solid rgba(34, 211, 238, .28);
    color: #e0f2fe;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    box-shadow:
        0 18px 50px rgba(0, 0, 0, .35),
        0 0 28px rgba(34, 211, 238, .16);
    transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
}

/* Flechita */
.universe-hint::before {
    content: "";
    position: absolute;
     left: calc(100% + 8px);
    bottom: 50%;
    transform: translateY(50%) translateX(-8px) rotate(45deg);
    width: 12px;
    height: 12px;
    background: rgba(2, 6, 23, .92);
    border-right: 1px solid rgba(34, 211, 238, .28);
    border-bottom: 1px solid rgba(34, 211, 238, .28);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
}

.universe-hint:hover::after,
.universe-hint:hover::before {
    opacity: 1;
    visibility: visible;
    transform: translateY(50%) translateX(0);
}

.universe-hint:hover::before {
    transform: translateY(50%) translateX(0) rotate(45deg);
}

/* Si quieres separarlos verticalmente */
.zoom-hint {
    margin-top: 12px;
}
/* ========================================= */
/* ✨🌌 STELLAR BACKGROUND TITLE */
/* ========================================= */

.universe-title-bg{

    position:absolute;

    top:15%;
    left:50%;

    transform:translate(-50%,-50%);

    z-index:0;

    font-size:150px;
    font-weight:900;

    letter-spacing:25px;
    text-transform:uppercase;

    white-space:nowrap;

    pointer-events:none;
    user-select:none;

    /* ✨ color base */
    color:rgba(255,255,255,.08);

    /* ✨ efecto estelar */
    text-shadow:

    0 0 5px rgba(255,255,255,.9),
    0 0 12px rgba(255,255,255,.8),
    0 0 24px rgba(180,240,255,.7),
    0 0 45px rgba(120,220,255,.55),
    0 0 90px rgba(0,180,255,.35),
    0 0 140px rgba(0,140,255,.18);

    /* ✨ brillo suave */
    opacity:.9;

    /* ✨ sensación espacial */
    filter:
    blur(.3px)
    drop-shadow(0 0 35px rgba(255,255,255,.25));

    /* ✨ degradado estelar */
    background:linear-gradient(
        180deg,
        rgba(255,255,255,.95) 0%,
        rgba(180,240,255,.8) 40%,
        rgba(120,200,255,.35) 100%
    );

    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:stellarGlow 6s ease-in-out infinite;
    
}
@keyframes stellarGlow{

    0%,100%{
        opacity:.75;
        transform:translate(-50%,-50%) scale(1);
    }

    50%{
        opacity:1;
        transform:translate(-50%,-50%) scale(1.02);
    }
}
/* ========================================= */
/* 🌌 RESPONSIVE SYSTEM ENCAPSULADO */
/* SOLO AFECTA A LA RUTA IA */
/* ========================================= */

/* 💻 LAPTOPS GRANDES */
@media (max-width: 1600px){

    .ai-route-world .universe-map{
        transform:scale(.88);
        transform-origin:top left;
    }

    .ai-route-world .tree-block{
        width:340px;
    }

    .ai-route-world .city-node{
        width:100px;
        height:100px;
    }

    .ai-route-world .route-card{
        padding:30px;
        padding-right:100px;
    }

    .ai-route-world .route-card h3{
        font-size:24px;
    }

    .ai-route-world .route-card p{
        font-size:15px;
    }

    .ai-route-world .route-header h1{
        font-size:62px;
    }
}



/* 💻 LAPTOP NORMAL */
@media (max-width: 1400px){

    .ai-route-world .universe-map{
        transform:scale(.78);
        transform-origin:top left;
    }

    .ai-route-world .tree-block{
        width:300px;
    }

    .ai-route-world .city-node{
        width:88px;
        height:88px;
    }

    .ai-route-world .big-node{
        transform:scale(1.05);
    }

    .ai-route-world .route-card{
        padding:24px;
        padding-right:80px;
        border-radius:24px;
        left:-180px;
    }

    .ai-route-world .route-card h3{
        font-size:21px;
    }

    .ai-route-world .route-card p{
        font-size:14px;
        line-height:1.5;
    }

    .ai-route-world .node-text{
        font-size:11px;
        letter-spacing:2px;
    }

    .ai-route-world .route-header h1{
        font-size:54px;
    }

    .ai-route-world .route-header p{
        font-size:17px;
    }

    .ai-route-world .universe-title-bg{
        font-size:170px;
    }
}

/* 💻 NOTEBOOKS PEQUEÑOS */
@media (max-width: 1200px){

    .ai-route-world .universe-map{
        transform:scale(.68);
        transform-origin:top left;
    }

    .ai-route-world .tree-block{
        width:260px;
    }

    .ai-route-world .city-node{
        width:78px;
        height:78px;
    }

    .ai-route-world .route-card{
        padding:22px;
        padding-right:70px;
    }

    .ai-route-world .route-card h3{
        font-size:18px;
    }

    .ai-route-world .route-card p{
        font-size:13px;
    }

    .ai-route-world .route-header{
        top:50px;
    }

    .ai-route-world .route-header h1{
        font-size:46px;
    }

    .ai-route-world .route-header p{
        font-size:15px;
    }

    .ai-route-world .route-badge{
        font-size:11px;
    }

    .ai-route-world .universe-title-bg{
        font-size:130px;
        letter-spacing:14px;
    }
}

/* 📱 TAMAÑO EN MOBILES */
/* 📱 TABLETS / MOBILE */
@media (max-width: 991px) {

    .ai-route-world {
        width: 100% !important;
        max-width: 100vw !important;

        min-height: 100dvh !important;
        height: 100dvh !important;

        overflow: hidden !important;
        position: relative !important;
    }

    .ai-route-world .universe-wrapper {
        width: 100% !important;
        max-width: 100vw !important;

        height: 100% !important;
        min-height: 100dvh !important;

        overflow-x: auto !important;
        overflow-y: auto !important;

        position: relative !important;

        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-x pan-y !important;

        box-sizing: border-box !important;
    }
}

    .ai-route-world .universe-map{
        transform:scale(.55);
        transform-origin:top left;
    }

    .ai-route-world .route-header{
        top:40px;
        padding:0 20px;
    }

    .ai-route-world .route-header h1{
        font-size:34px;
        line-height:1.1;
    }

    .ai-route-world .route-header p{
        font-size:14px;
    }

    .ai-route-world .route-badge{
        font-size:10px;
        padding:8px 16px;
    }

    .ai-route-world .universe-title-bg{
        font-size:90px;
        letter-spacing:10px;
    }

    .ai-route-world .universe-hint,
    .ai-route-world .zoom-hint{
        transform:scale(.9);
    }
}

/* 📱 MOBILE */
@media (max-width: 768px){

    .ai-route-world .route-header{
        top:30px;
    }

    .ai-route-world .route-header h1{
        font-size:28px;
    }

    .ai-route-world .route-header p{
        font-size:13px;
        line-height:1.5;
    }

    .ai-route-world .universe-title-bg{
        font-size:60px;
        letter-spacing:6px;
    }

    .ai-route-world .universe-map{
        transform:scale(.42);
        transform-origin:top left;
    }

    .ai-route-world .universe-hint,
    .ai-route-world .zoom-hint{
        font-size:12px;
        padding:10px 14px;
    }

    .ai-route-world .hint-icon{
        font-size:14px;
    }
}

.cosmic-star-button{

    position:relative;
    z-index:999;

    width:170px;
    height:170px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:none;
    outline:none;

    cursor:pointer;

background:
radial-gradient(
circle at center,
#1a1f45 0%,
#050816 75%
);
    color:white;

    font-size:14px;
    font-weight:800;

    letter-spacing:2px;

    text-transform:uppercase;

    clip-path:polygon(
        50% 0%,
        58% 34%,
        85% 15%,
        66% 42%,
        100% 50%,
        66% 58%,
        85% 85%,
        58% 66%,
        50% 100%,
        42% 66%,
        15% 85%,
        34% 58%,
        0% 50%,
        34% 42%,
        15% 15%,
        42% 34%
    );

    box-shadow:
    0 0 30px rgba(52,92,255,.45),
    0 0 80px rgba(255,183,51,.2);

    transition:
    transform .4s ease,
    filter .4s ease;
}

.cosmic-star-button:hover{

    transform:
    scale(1.08)
    rotate(6deg);

    filter:brightness(1.15);
}

.cosmic-star-button::before{

    content:"";

    position:absolute;

    inset:8px;

    clip-path:inherit;

    background:

    radial-gradient(
        circle at center,
        rgba(255,183,51,.95) 0%,
        rgba(255,120,0,.75) 18%,
        rgba(124,58,237,.55) 42%,
        rgba(20,25,55,.95) 78%
    );

    box-shadow:
    inset 0 0 25px rgba(255,255,255,.18),
    inset 0 0 60px rgba(255,183,51,.18),
    inset 0 0 100px rgba(124,58,237,.25);

    filter:blur(.2px);

    z-index:-1;
}
.cosmic-star-button::after{

    content:"";

    position:absolute;

    inset:18px;

    clip-path:inherit;

    background:

    radial-gradient(
        circle,
        rgba(255,255,255,.45),
        transparent 70%
    );

    mix-blend-mode:screen;

    opacity:.45;

    filter:blur(18px);

    z-index:-1;
}
.ai-route-world .city-node{
    transform:none;
}

/* =========================================
🌌 AI ROUTE NAVBAR OVERRIDE
========================================= */

body:has(.ai-route-world) .top-navbar{

    height:53px;

    position:absolute;

    top:0;

    right:10%;
}

/* =========================================
🌌 REMOVE BORDER ONLY IN AI ROUTE
========================================= */

body:has(.ai-route-world) .border-bottom{

    border-bottom:none !important;
}


/* =========================================
PREMIUM NORMAL SLIDE
========================================= */

.premium-slide{
    position:relative;
    overflow:hidden;

    min-height:520px;

    padding:42px;

    border-radius:34px;

    background:
    radial-gradient(circle at top left,
        rgba(255,220,255,.22),
        transparent 34%
    ),
    radial-gradient(circle at bottom right,
        rgba(170,190,255,.20),
        transparent 36%
    ),
    linear-gradient(135deg,
        rgba(255,255,255,.14),
        rgba(15,18,42,.94)
    );

    border:1px solid rgba(255,255,255,.18);

    box-shadow:
    inset 0 0 40px rgba(255,255,255,.04),
    0 0 50px rgba(255,200,255,.13);
}

.premium-orb{
    position:absolute;

    width:240px;
    height:240px;

    border-radius:50%;

    filter:blur(10px);

    opacity:.55;

    pointer-events:none;
}

.premium-orb-left{
    top:-90px;
    left:-90px;

    background:
    rgba(255,180,240,.34);
}

.premium-orb-right{
    right:-100px;
    bottom:-100px;

    background:
    rgba(160,180,255,.34);
}

.premium-slide-main{
    position:relative;
    z-index:2;

    min-height:430px;

    display:grid;
    grid-template-columns:360px 1fr;
    gap:38px;

    align-items:center;
}

.premium-slide-visual{
    position:relative;

    min-height:340px;

    display:flex;
    align-items:center;
    justify-content:center;
}

.premium-icon-ring{
    position:relative;

    width:220px;
    height:220px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:
    radial-gradient(circle,
        rgba(255,255,255,.95) 0%,
        rgba(255,210,255,.38) 24%,
        rgba(190,170,255,.18) 54%,
        rgba(255,255,255,.04) 70%
    );

    box-shadow:
    0 0 35px rgba(255,220,255,.55),
    0 0 90px rgba(180,170,255,.28);

    animation:premiumPulse 4s ease-in-out infinite;
}

.premium-icon-ring::before{
    content:"";

    position:absolute;
    inset:-18px;

    border-radius:50%;

    border:1px solid rgba(255,255,255,.18);

    animation:premiumRotate 14s linear infinite;
}

.premium-icon-ring::after{
    content:"";

    position:absolute;
    inset:-42px;

    border-radius:50%;

    border:1px dashed rgba(255,210,255,.18);

    animation:premiumRotate 22s linear infinite reverse;
}

.premium-icon-ring span{
    font-size:82px;
    z-index:2;
}

.premium-floating-icons span{
    position:absolute;

    width:46px;
    height:46px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:16px;

    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.18);

    color:#ffd6ff;

    font-size:20px;

    box-shadow:
    0 0 24px rgba(255,200,255,.18);

    animation:floatIcon 4s ease-in-out infinite;
}

.premium-floating-icons span:nth-child(1){
    top:18px;
    left:35px;
}

.premium-floating-icons span:nth-child(2){
    top:74px;
    right:18px;
    animation-delay:.5s;
}

.premium-floating-icons span:nth-child(3){
    bottom:42px;
    left:20px;
    animation-delay:1s;
}

.premium-floating-icons span:nth-child(4){
    bottom:20px;
    right:64px;
    animation-delay:1.5s;
}

.premium-slide-content h2{
    margin:18px 0;

    font-size:42px;
    line-height:1.08;

    color:white;
}

.premium-slide-content > p{
    max-width:560px;

    margin:0;

    font-size:18px;
    line-height:1.7;

    color:rgba(255,255,255,.78);
}

.premium-example-card{
    display:flex;
    gap:16px;

    margin-top:30px;
    padding:20px;

    border-radius:24px;

    background:
    linear-gradient(135deg,
        rgba(255,255,255,.14),
        rgba(255,210,255,.08)
    );

    border:1px solid rgba(255,255,255,.18);

    box-shadow:
    inset 0 0 24px rgba(255,255,255,.04);
}

.premium-example-icon{
    width:52px;
    height:52px;

    flex:0 0 52px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:18px;

    background:rgba(255,255,255,.18);

    font-size:26px;
}

.premium-example-card h3{
    margin:0 0 6px;

    font-size:18px;

    color:white;
}

.premium-example-card p{
    margin:0;

    font-size:15px;
    line-height:1.6;

    color:rgba(255,255,255,.72);
}

@keyframes premiumPulse{
    0%,100%{
        transform:scale(.96);
    }

    50%{
        transform:scale(1.04);
    }
}

@keyframes premiumRotate{
    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

@keyframes floatIcon{
    0%,100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-12px);
    }
}

@media(max-width:900px){

    .premium-slide-main{
        grid-template-columns:1fr;
        text-align:center;
    }

    .premium-slide-content > p{
        margin:0 auto;
    }

    .premium-example-card{
        text-align:left;
    }
}

@media(max-width:600px){

    .premium-slide{
        padding:28px;
    }

    .premium-icon-ring{
        width:180px;
        height:180px;
    }

    .premium-icon-ring span{
        font-size:66px;
    }

    .premium-slide-content h2{
        font-size:30px;
    }
}

/* =========================================================
   AULOPOLIS AI CHAT — FUTURISTIC GAMER UI
   Desktop / Laptop / Tablet / Mobile
========================================================= */


/* =========================================================
   01. DESIGN TOKENS
========================================================= */

:root {
    --ai-bg-dark: #020617;
    --ai-bg-panel: #060816;
    --ai-bg-panel-soft: #0b1023;

    --ai-white: #ffffff;
    --ai-muted: rgba(255, 255, 255, .58);

    --ai-cyan: #22d3ee;
    --ai-blue: #3b82f6;
    --ai-purple: #7c3aed;
    --ai-violet: #8b5cf6;

    --ai-border-soft: rgba(255, 255, 255, .10);
    --ai-border-cyan: rgba(34, 211, 238, .24);
    --ai-border-purple: rgba(124, 58, 237, .30);

    --ai-panel-width: 430px;
    --ai-panel-width-laptop: 400px;
    --ai-panel-width-tablet: 390px;

    --ai-radius-lg: 30px;
    --ai-radius-md: 18px;
    --ai-radius-sm: 14px;

    --ai-shadow-panel:
        -24px 0 70px rgba(0, 0, 0, .65),
        0 0 55px rgba(124, 58, 237, .22);

    --ai-shadow-glow:
        0 0 24px rgba(34, 211, 238, .14),
        0 0 32px rgba(124, 58, 237, .12);

    --ai-transition-fast: .22s ease;
    --ai-transition-normal: .32s ease;
    --ai-transition-panel: .45s cubic-bezier(.4, 0, .2, 1);

    /*
       Altura reservada para el menú inferior mobile.
       Si el input queda muy arriba: baja este valor.
       Si el menú todavía lo tapa: sube este valor.
    */
    --ai-mobile-menu-space: 92px;

    --ai-safe-bottom: env(safe-area-inset-bottom, 0px);
}


/* =========================================================
   02. DESKTOP / LARGE SCREENS
========================================================= */

#aiTutorPanel {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;

    width: var(--ai-panel-width) !important;
    max-width: 92vw !important;
    height: 100dvh !important;

    display: flex !important;
    flex-direction: column !important;

    overflow: hidden !important;

    color: var(--ai-white) !important;

    background:
        radial-gradient(
            circle at top,
            rgba(124, 58, 237, .26),
            transparent 36%
        ),
        radial-gradient(
            circle at bottom right,
            rgba(0, 219, 255, .10),
            transparent 34%
        ),
        linear-gradient(
            180deg,
            var(--ai-bg-panel) 0%,
            var(--ai-bg-panel-soft) 100%
        ) !important;

    border-left: 1px solid var(--ai-border-purple) !important;

    box-shadow: var(--ai-shadow-panel) !important;

    backdrop-filter: blur(28px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(28px) saturate(150%) !important;

    z-index: 100000001 !important;

    transform: translateX(calc(100% + 32px)) !important;

    transition:
        transform var(--ai-transition-panel),
        opacity var(--ai-transition-normal) !important;

    opacity: 0 !important;
}

#aiTutorPanel.show {
    transform: translateX(0) !important;
    opacity: 1 !important;
}


/* =========================================================
   03. CLOSE BUTTON
========================================================= */

#aiTutorClose {
    position: absolute !important;
    top: 18px !important;
    right: 18px !important;

    width: 40px !important;
    height: 40px !important;

    min-width: 40px !important;
    min-height: 40px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 50% !important;
    border: 1px solid rgba(255, 255, 255, .14) !important;

    background:
        radial-gradient(
            circle at center,
            rgba(255, 255, 255, .12),
            rgba(255, 255, 255, .05)
        ) !important;

    color: var(--ai-white) !important;

    font-size: 22px !important;
    line-height: 1 !important;

    cursor: pointer !important;

    box-sizing: border-box !important;

    z-index: 30 !important;

    transition:
        transform var(--ai-transition-fast),
        background var(--ai-transition-fast),
        box-shadow var(--ai-transition-fast),
        color var(--ai-transition-fast) !important;
}

#aiTutorClose:hover {
    transform: rotate(90deg) scale(1.1) !important;

    color: #67e8f9 !important;

    background:
        radial-gradient(
            circle at center,
            rgba(34, 211, 238, .22),
            rgba(59, 130, 246, .10) 45%,
            transparent 75%
        ) !important;

    box-shadow:
        0 0 18px rgba(34, 211, 238, .55),
        0 0 42px rgba(59, 130, 246, .35),
        inset 0 0 14px rgba(34, 211, 238, .22) !important;

    text-shadow:
        0 0 10px rgba(103, 232, 249, .9) !important;
}


/* =========================================================
   04. HEADER
========================================================= */

.ai-header {
    flex: 0 0 auto !important;

    padding: 34px 58px 18px 24px !important;

    color: var(--ai-white) !important;

    font-size: 18px !important;
    font-weight: 900 !important;
    letter-spacing: 2px !important;
    text-align: center !important;
    text-transform: uppercase !important;

    border-bottom: 1px solid rgba(255, 255, 255, .06) !important;

    background:
        linear-gradient(
            180deg,
            rgba(255, 255, 255, .035),
            rgba(255, 255, 255, 0)
        ) !important;
}

.ai-header::before {
    content: "🤖";

    width: 86px;
    height: 86px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 16px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(255, 255, 255, .24),
            transparent 46%
        ),
        linear-gradient(
            135deg,
            var(--ai-purple),
            #00dbff
        );

    box-shadow:
        0 0 30px rgba(124, 58, 237, .48),
        0 0 48px rgba(0, 219, 255, .20),
        inset 0 1px 0 rgba(255, 255, 255, .14);

    font-size: 42px;
}


/* =========================================================
   05. MESSAGES AREA
========================================================= */

#aiMessages {
    flex: 1 1 auto !important;

    width: 100% !important;
    min-height: 0 !important;

    padding: 18px 18px 14px !important;

    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;

    -webkit-overflow-scrolling: touch !important;

    box-sizing: border-box !important;
}

#aiMessages::-webkit-scrollbar {
    width: 7px !important;
}

#aiMessages::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, .04) !important;
}

#aiMessages::-webkit-scrollbar-thumb {
    background:
        linear-gradient(
            180deg,
            rgba(34, 211, 238, .58),
            rgba(124, 58, 237, .58)
        ) !important;

    border-radius: 999px !important;
}

.ai-msg,
.user-msg {
    max-width: 92% !important;

    margin-bottom: 8px !important;
    padding: 14px 16px !important;

    color: var(--ai-white) !important;

    font-size: 14px !important;
    line-height: 1.6 !important;
    font-weight: 500 !important;

    border-radius: var(--ai-radius-md) !important;

    box-sizing: border-box !important;
}

.ai-msg {
    margin-right: auto !important;
    margin-left: 0 !important;

    border-bottom-left-radius: 7px !important;

    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, .075),
            rgba(255, 255, 255, .045)
        ) !important;

    border: 1px solid rgba(124, 58, 237, .22) !important;

    box-shadow:
        0 0 20px rgba(124, 58, 237, .12),
        inset 0 1px 0 rgba(255, 255, 255, .06) !important;
}

.user-msg {
    margin-left: auto !important;
    margin-right: 0 !important;

    border-bottom-right-radius: 7px !important;

    text-align: left !important;

    background:
        linear-gradient(
            135deg,
            rgba(124, 58, 237, .58),
            rgba(0, 219, 255, .22)
        ) !important;

    border: 1px solid rgba(255, 255, 255, .12) !important;

    box-shadow:
        0 0 18px rgba(0, 219, 255, .12),
        inset 0 1px 0 rgba(255, 255, 255, .08) !important;
}


/* =========================================================
   06. INPUT AREA — DESKTOP BASE
========================================================= */

.ai-input-area {
    flex: 0 0 auto !important;

    display: flex !important;
    align-items: center !important;
    gap: 10px !important;

    padding: 14px 16px 16px !important;

    border-top: 1px solid rgba(255, 255, 255, .08) !important;

    background:
        linear-gradient(
            180deg,
            rgba(6, 8, 22, .88),
            rgba(2, 6, 23, .98)
        ) !important;

    backdrop-filter: blur(20px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(150%) !important;

    box-shadow:
        0 -18px 45px rgba(0, 0, 0, .36),
        inset 0 1px 0 rgba(255, 255, 255, .05) !important;

    box-sizing: border-box !important;
}

#aiInput {
    flex: 1 1 auto !important;

    min-width: 0 !important;
    height: 48px !important;

    padding: 0 16px !important;

    color: var(--ai-white) !important;

    background:
        linear-gradient(
            180deg,
            rgba(255, 255, 255, .09),
            rgba(255, 255, 255, .055)
        ) !important;

    border: 1px solid rgba(255, 255, 255, .13) !important;
    border-radius: 16px !important;

    outline: none !important;

    font-size: 14px !important;
    font-weight: 500 !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .08),
        0 10px 24px rgba(0, 0, 0, .22) !important;

    box-sizing: border-box !important;

    transition:
        border-color var(--ai-transition-fast),
        box-shadow var(--ai-transition-fast),
        background var(--ai-transition-fast) !important;
}

#aiInput::placeholder {
    color: rgba(255, 255, 255, .48) !important;
}

#aiInput:focus {
    border-color: rgba(34, 211, 238, .60) !important;

    background:
        linear-gradient(
            180deg,
            rgba(255, 255, 255, .12),
            rgba(255, 255, 255, .065)
        ) !important;

    box-shadow:
        0 0 0 3px rgba(34, 211, 238, .12),
        0 0 22px rgba(34, 211, 238, .14),
        0 0 28px rgba(124, 58, 237, .12),
        inset 0 1px 0 rgba(255, 255, 255, .10) !important;
}

#aiSend {
    flex: 0 0 auto !important;

    height: 48px !important;

    padding: 0 20px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    color: #050816 !important;

    font-size: 12px !important;
    font-weight: 950 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;

    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #dffbff 45%,
            #a5f3fc 100%
        ) !important;

    border: none !important;
    border-radius: 16px !important;

    cursor: pointer !important;

    box-shadow:
        0 0 20px rgba(255, 255, 255, .18),
        0 0 28px rgba(0, 219, 255, .16),
        0 12px 26px rgba(0, 0, 0, .28),
        inset 0 1px 0 rgba(255, 255, 255, .90) !important;

    transition:
        transform var(--ai-transition-fast),
        box-shadow var(--ai-transition-fast),
        filter var(--ai-transition-fast) !important;

    box-sizing: border-box !important;
}

#aiSend:hover {
    transform: translateY(-2px) !important;

    box-shadow:
        0 0 28px rgba(255, 255, 255, .26),
        0 0 35px rgba(0, 219, 255, .22),
        0 14px 30px rgba(0, 0, 0, .34),
        inset 0 1px 0 rgba(255, 255, 255, .96) !important;
}

#aiSend:active {
    transform: translateY(1px) scale(.98) !important;
}


/* =========================================================
   07. LAPTOPS — 1366px
========================================================= */

@media (max-width: 1366px) {

    #aiTutorPanel {
        width: var(--ai-panel-width-laptop) !important;
    }

    .ai-header {
        padding: 30px 54px 16px 22px !important;

        font-size: 16px !important;
        letter-spacing: 1.7px !important;
    }

    .ai-header::before {
        width: 76px !important;
        height: 76px !important;

        margin-bottom: 14px !important;

        font-size: 36px !important;
    }

    #aiMessages {
        padding: 16px 16px 12px !important;
    }

    .ai-msg,
    .user-msg {
        font-size: 13.5px !important;
        line-height: 1.55 !important;
    }
}


/* =========================================================
   08. SMALL LAPTOPS / TABLETS HORIZONTAL — 1200px
========================================================= */

@media (max-width: 1200px) {

    #aiTutorPanel {
        width: 390px !important;
        max-width: 94vw !important;
    }

    .ai-input-area {
        padding: 13px 14px 15px !important;
    }

    #aiInput,
    #aiSend {
        height: 46px !important;
    }
}


/* =========================================================
   09. TABLETS — 991px
========================================================= */

@media (max-width: 991px) {

    #aiTutorPanel {
        width: var(--ai-panel-width-tablet) !important;
        max-width: 96vw !important;
    }

    .ai-header {
        padding: 28px 52px 14px 20px !important;

        font-size: 15px !important;
        letter-spacing: 1.5px !important;
    }

    .ai-header::before {
        width: 68px !important;
        height: 68px !important;

        border-radius: 24px !important;

        font-size: 32px !important;
    }

    #aiMessages {
        padding: 15px 14px 12px !important;
    }

    .ai-msg,
    .user-msg {
        max-width: 90% !important;

        padding: 12px 14px !important;

        font-size: 13px !important;
    }

    #aiSend {
        padding: 0 18px !important;
    }
}


/* =========================================================
   10. MOBILE — 640px
   Bottom Sheet + Input arriba del menú inferior
========================================================= */

@media (max-width: 640px) {

    #aiTutorPanel {
        position: fixed !important;

        top: auto !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;

        width: 100vw !important;
        max-width: 100vw !important;

        height: 100dvh !important;
        max-height: 100dvh !important;
        min-height: 0 !important;

        display: flex !important;
        flex-direction: column !important;

        overflow: hidden !important;

        color: var(--ai-white) !important;

        border-radius: 30px 30px 0 0 !important;
        border-left: none !important;
        border-top: 1px solid rgba(125, 211, 252, .24) !important;

        background:
            radial-gradient(
                circle at top left,
                rgba(34, 211, 238, .18),
                transparent 34%
            ),
            radial-gradient(
                circle at top right,
                rgba(139, 92, 246, .24),
                transparent 38%
            ),
            linear-gradient(
                180deg,
                rgba(6, 8, 22, .98),
                rgba(2, 6, 23, .98)
            ) !important;

        box-shadow:
            0 -24px 80px rgba(0, 0, 0, .72),
            0 0 42px rgba(34, 211, 238, .16),
            inset 0 1px 0 rgba(255, 255, 255, .08) !important;

        backdrop-filter: blur(28px) saturate(155%) !important;
        -webkit-backdrop-filter: blur(28px) saturate(155%) !important;

        z-index: 100000001 !important;

        transform: translateY(110%) !important;
        opacity: 0 !important;

        transition:
            transform .42s cubic-bezier(.4, 0, .2, 1),
            opacity .32s ease !important;
    }

    #aiTutorPanel.show {
        transform: translateY(0) !important;
        opacity: 1 !important;
    }

    #aiTutorPanel::before {
        content: "";

        position: absolute;
        top: 10px;
        left: 50%;

        width: 48px;
        height: 5px;

        border-radius: 999px;

        transform: translateX(-50%);

        background: rgba(226, 232, 240, .35);

        box-shadow:
            0 0 14px rgba(34, 211, 238, .22);

        z-index: 20;
    }

    #aiTutorClose {
        top: 18px !important;
        right: 18px !important;

        width: 36px !important;
        height: 36px !important;

        min-width: 36px !important;
        min-height: 36px !important;

        font-size: 21px !important;

        background:
            radial-gradient(
                circle at center,
                rgba(239, 68, 68, .22),
                rgba(15, 23, 42, .88)
            ) !important;

        box-shadow:
            0 0 18px rgba(239, 68, 68, .22),
            inset 0 1px 0 rgba(255, 255, 255, .10) !important;
    }

    .ai-header {
        flex: 0 0 auto !important;

        min-height: 104px !important;

        padding: 34px 58px 14px 20px !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;

        text-align: center !important;

        font-size: 13px !important;
        line-height: 1.2 !important;
        font-weight: 900 !important;
        letter-spacing: .14em !important;

        border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
    }

    .ai-header::before {
        width: 54px !important;
        height: 54px !important;

        margin: 0 auto 10px !important;

        border-radius: 19px !important;

        font-size: 27px !important;

        box-shadow:
            0 0 24px rgba(124, 58, 237, .42),
            0 0 38px rgba(0, 219, 255, .20),
            inset 0 1px 0 rgba(255, 255, 255, .16) !important;
    }

    #aiMessages {
        flex: 1 1 auto !important;

        min-height: 0 !important;

        padding: 14px 14px 12px !important;

        gap: 10px !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;

        -webkit-overflow-scrolling: touch !important;
    }

    #aiMessages::-webkit-scrollbar {
        width: 4px !important;
    }

    .ai-msg,
    .user-msg {
        max-width: 88% !important;

        margin-bottom: 5px !important;

        padding: 12px 14px !important;

        border-radius: 18px !important;

        font-size: 13px !important;
        line-height: 1.5 !important;
        font-weight: 600 !important;
    }

    .ai-msg {
        border-bottom-left-radius: 6px !important;
    }

    .user-msg {
        border-bottom-right-radius: 6px !important;

        background:
            linear-gradient(
                135deg,
                rgba(124, 58, 237, .72),
                rgba(0, 219, 255, .30)
            ) !important;
    }

    /*
       INPUT MOBILE:
       No usamos position:absolute para no matar el scroll.
       Lo subimos dejando margen inferior para el menú mobile.
    */
    .ai-input-area {
        position: relative !important;

        flex: 0 0 auto !important;

        display: flex !important;
        align-items: center !important;
        gap: 9px !important;

        margin:
            0
            10px
            calc(var(--ai-mobile-menu-space) + var(--ai-safe-bottom) + 10px)
            10px !important;

        padding: 10px !important;

        border: 1px solid rgba(125, 211, 252, .16) !important;
        border-radius: 22px !important;

        background:
            radial-gradient(
                circle at top left,
                rgba(34, 211, 238, .12),
                transparent 42%
            ),
            radial-gradient(
                circle at bottom right,
                rgba(139, 92, 246, .16),
                transparent 42%
            ),
            linear-gradient(
                180deg,
                rgba(10, 18, 38, .90),
                rgba(4, 7, 20, .98)
            ) !important;

        backdrop-filter: blur(22px) saturate(165%) !important;
        -webkit-backdrop-filter: blur(22px) saturate(165%) !important;

        box-shadow:
            0 18px 42px rgba(0, 0, 0, .45),
            0 0 0 1px rgba(255, 255, 255, .035) inset,
            0 0 24px rgba(34, 211, 238, .12),
            0 0 32px rgba(124, 58, 237, .10) !important;

        box-sizing: border-box !important;
    }

    .ai-input-area::before {
        content: "";

        position: absolute;
        top: 0;
        left: 18px;
        right: 18px;

        height: 1px;

        background:
            linear-gradient(
                90deg,
                transparent,
                rgba(34, 211, 238, .65),
                rgba(124, 58, 237, .65),
                transparent
            );

        opacity: .95;

        pointer-events: none;
    }

    #aiInput {
        flex: 1 1 auto !important;

        width: auto !important;
        min-width: 0 !important;
        height: 46px !important;

        padding: 0 14px !important;

        color: var(--ai-white) !important;

        font-size: 13.5px !important;
        font-weight: 600 !important;

        background:
            linear-gradient(
                180deg,
                rgba(255, 255, 255, .10),
                rgba(255, 255, 255, .055)
            ) !important;

        border: 1px solid rgba(255, 255, 255, .14) !important;
        border-radius: 16px !important;

        outline: none !important;

        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .08),
            0 8px 20px rgba(0, 0, 0, .25) !important;
    }

    #aiInput::placeholder {
        color: rgba(255, 255, 255, .44) !important;
    }

    #aiInput:focus {
        border-color: rgba(34, 211, 238, .68) !important;

        box-shadow:
            0 0 0 3px rgba(34, 211, 238, .12),
            0 0 22px rgba(34, 211, 238, .18),
            0 0 32px rgba(124, 58, 237, .14),
            inset 0 1px 0 rgba(255, 255, 255, .12) !important;
    }

    #aiSend {
        flex: 0 0 46px !important;

        width: 46px !important;
        height: 46px !important;

        min-width: 46px !important;
        max-width: 46px !important;

        padding: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        border-radius: 16px !important;

        font-size: 0 !important;

        color: var(--ai-white) !important;

        background:
            linear-gradient(
                135deg,
                var(--ai-cyan),
                var(--ai-blue),
                var(--ai-violet)
            ) !important;

        border: none !important;

        box-shadow:
            0 0 18px rgba(34, 211, 238, .28),
            0 0 28px rgba(124, 58, 237, .16),
            0 8px 20px rgba(0, 0, 0, .38),
            inset 0 1px 0 rgba(255, 255, 255, .20) !important;

        transition:
            transform var(--ai-transition-fast),
            box-shadow var(--ai-transition-fast),
            filter var(--ai-transition-fast) !important;
    }

    #aiSend::before {
        content: "➤";

        font-size: 18px !important;
        line-height: 1 !important;

        color: var(--ai-white) !important;

        transform: translateX(1px);
    }

    #aiSend:hover {
        transform: translateY(-1px) scale(1.03) !important;

        box-shadow:
            0 0 24px rgba(34, 211, 238, .35),
            0 0 34px rgba(124, 58, 237, .22),
            0 10px 24px rgba(0, 0, 0, .42),
            inset 0 1px 0 rgba(255, 255, 255, .24) !important;
    }

    #aiSend:active {
        transform: translateY(1px) scale(.96) !important;
    }
}


/* =========================================================
   11. SMALL MOBILE — 420px
========================================================= */

@media (max-width: 420px) {

    :root {
        --ai-mobile-menu-space: 86px;
    }

    #aiTutorPanel {
        border-radius: 26px 26px 0 0 !important;
    }

    .ai-header {
        min-height: 96px !important;

        padding: 32px 54px 12px 18px !important;

        font-size: 12px !important;
        letter-spacing: .12em !important;
    }

    .ai-header::before {
        width: 50px !important;
        height: 50px !important;

        margin-bottom: 8px !important;

        border-radius: 18px !important;

        font-size: 25px !important;
    }

    #aiMessages {
        padding: 12px 12px 10px !important;
    }

    .ai-msg,
    .user-msg {
        max-width: 90% !important;

        padding: 11px 13px !important;

        font-size: 12.5px !important;
        line-height: 1.48 !important;
    }

    .ai-input-area {
        gap: 8px !important;

        margin:
            0
            8px
            calc(var(--ai-mobile-menu-space) + var(--ai-safe-bottom) + 8px)
            8px !important;

        padding: 9px !important;

        border-radius: 20px !important;
    }

    #aiInput {
        height: 44px !important;

        padding: 0 13px !important;

        font-size: 13px !important;

        border-radius: 15px !important;
    }

    #aiSend {
        flex-basis: 44px !important;

        width: 44px !important;
        height: 44px !important;

        min-width: 44px !important;
        max-width: 44px !important;

        border-radius: 15px !important;
    }

    #aiSend::before {
        font-size: 17px !important;
    }
}
/* =========================================================
   FLOATING AI BUTTON
========================================================= 

#floatingAiBtn{

    position:fixed;

    right:28px;
    bottom:28px;

    width:88px;
    height:88px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    cursor:pointer;

    overflow:hidden;

    z-index: 100000000 !important;
    background:
    radial-gradient(
        circle at center,
        rgba(255,255,255,.10),
        rgba(255,255,255,.03)
    );

    backdrop-filter:blur(25px);
    -webkit-backdrop-filter:blur(25px);

    border:
    1px solid rgba(255,255,255,.12);

    box-shadow:
    0 0 30px rgba(124,58,237,.28),
    0 0 80px rgba(0,219,255,.12),
    inset 0 0 25px rgba(255,255,255,.04);

    transition:
    transform .35s ease,
    box-shadow .35s ease;
}

#floatingAiBtn:hover{

    transform:
    scale(1.08);

    box-shadow:
    0 0 45px rgba(124,58,237,.42),
    0 0 120px rgba(0,219,255,.18);
}*/

/* CORE */

.ai-core{

    position:absolute;

    width:18px;
    height:18px;

    border-radius:50%;

    background:
    linear-gradient(
        135deg,
        #7C3AED,
        #00DBFF
    );

    box-shadow:
    0 0 18px rgba(124,58,237,.65),
    0 0 30px rgba(0,219,255,.35);

    animation:
    aiCorePulse 2.5s infinite ease;
}

@keyframes aiCorePulse{

    0%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.35);
    }

    100%{
        transform:scale(1);
    }
}

/* RING */

.ai-ring{

    position:absolute;

    width:58px;
    height:58px;

    border-radius:50%;

    border:
    1px solid rgba(255,255,255,.14);

    animation:
    aiRotate 8s linear infinite;
}

@keyframes aiRotate{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

/* TEXT */

.ai-text{

    position:absolute;

    bottom:14px;

    color:#FFFFFF;

    font-size:10px;
    font-weight:800;

    letter-spacing:3px;

    opacity:.75;
}

/* MOBILE */

@media(max-width:768px){

    #floatingAiBtn{

        width:74px;
        height:74px;

        right:18px;
        bottom:18px;
    }

    .ai-ring{

        width:48px;
        height:48px;
    }

    .ai-text{

        font-size:9px;
    }
}

#floatingAiBtn * {
    pointer-events: none !important;
}
.ia-card.locked{

    position:relative;

    opacity:.45;

    filter:grayscale(1);

    pointer-events:none;

    border:
    1px solid rgba(255,255,255,.08);
}

.ia-card.locked::after{

    content:"🔒";

    position:absolute;

    top:16px;
    right:16px;

    font-size:22px;
}

.ia-card.completed{

    border:
    1px solid #00ff9d;

    box-shadow:
    0 0 25px rgba(0,255,157,.25);
}

.ia-card.completed::after{

    content:"✓";

    position:absolute;

    top:14px;
    right:14px;

    width:28px;
    height:28px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:#00ff9d;

    color:#000;

    font-weight:900;
}
.learning-infographic-popup {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999999;
    background: rgba(2,3,10,.86);
    backdrop-filter: blur(24px);
}

.learning-infographic-popup.show {
    display: flex;
}

.learning-infographic-panel {
    position: relative;
    width: min(920px, 92vw);
    min-height: 620px;
    padding: 42px;
    border-radius: 32px;
    background:
        radial-gradient(circle at top, rgba(124,58,237,.28), transparent 38%),
        linear-gradient(180deg, #060816, #0B1023);
    border: 1px solid rgba(255,255,255,.08);
    box-shadow:
        0 30px 90px rgba(0,0,0,.65),
        0 0 60px rgba(124,58,237,.25);
    color: #fff;
    overflow: hidden;
}

.learning-close {
    position: absolute;
    top: 22px;
    right: 22px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.08);
    color: #fff;
    font-size: 24px;
    cursor: pointer;
}

.learning-slide {
    text-align: center;
    padding: 40px 20px;
}

.learning-slide h2 {
    font-size: clamp(34px, 5vw, 64px);
    font-weight: 900;
    letter-spacing: -2px;
    color: #fff;
    margin-bottom: 16px;
}

.learning-slide h4 {
    color: #00DBFF;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.learning-slide p {
    max-width: 720px;
    margin: 0 auto;
    color: #CBD5E1;
    font-size: 19px;
    line-height: 1.7;
}

.learning-orb {
    width: 96px;
    height: 96px;
    margin: 0 auto 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, #7C3AED, #00DBFF);
    box-shadow:
        0 0 40px rgba(124,58,237,.6),
        0 0 80px rgba(0,219,255,.25);
    animation: orbPulse 3s infinite ease;
}

@keyframes orbPulse {
    0%, 100% { transform: scale(1); opacity: .9; }
    50% { transform: scale(1.12); opacity: 1; }
}

.learning-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 34px;
}

.learning-mini-card {
    padding: 22px;
    border-radius: 20px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
    color: #fff;
    font-weight: 800;
    box-shadow: 0 0 22px rgba(124,58,237,.10);
}

.learning-flow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 38px;
    flex-wrap: wrap;
}

.flow-item {
    padding: 18px 24px;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(124,58,237,.45), rgba(0,219,255,.15));
    border: 1px solid rgba(255,255,255,.10);
    color: #fff;
    font-weight: 800;
}

.flow-arrow {
    color: #00DBFF;
    font-size: 28px;
}

.learning-options {
    display: grid;
    gap: 14px;
    margin: 34px auto 0;
    max-width: 620px;
}

.learning-option {
    padding: 18px 20px;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(255,255,255,.06);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: .3s;
}

.learning-option:hover {
    transform: translateY(-2px);
    background: rgba(124,58,237,.28);
}

.learning-option.correct {
    background: rgba(0,255,157,.22);
    border-color: rgba(0,255,157,.65);
}

.learning-option.wrong {
    background: rgba(255,60,60,.20);
    border-color: rgba(255,60,60,.60);
}

#quizFeedback {
    margin-top: 22px;
    font-weight: 800;
}

.feedback-correct {
    color: #00ff9d;
}

.feedback-wrong {
    color: #ff6b6b;
}

.learning-navigation {
    position: absolute;
    left: 42px;
    right: 42px;
    bottom: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.learning-nav-btn,
.finish-learning-btn {
    padding: 14px 26px;
    border: none;
    border-radius: 16px;
    background: #fff;
    color: #050816;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 0 25px rgba(255,255,255,.15);
}

#learningSlideCounter {
    color: #CBD5E1;
    font-weight: 800;
}

.finish-learning-btn {
    margin-top: 34px;
    background: linear-gradient(90deg, #FFB200, #FFD54A);
}

@media (max-width: 768px) {
    .learning-infographic-panel {
        min-height: 90vh;
        padding: 28px 18px;
    }

    .learning-mini-grid {
        grid-template-columns: 1fr;
    }

    .learning-slide h2 {
        font-size: 34px;
    }

    .learning-slide p {
        font-size: 16px;
    }

    .learning-navigation {
        left: 18px;
        right: 18px;
    }
}
.ai-core-react-engine {
    width: 100%;
    padding: 20px;
    color: #fff;
}

#ai-game-root {
    width: 100%;
}

.ia-grid {
    display: block !important;
}

/* HEADER */

.ai-core-react-header {
    text-align: center;
    margin-bottom: 32px;
}

.ai-core-react-header span {
    display: inline-block;
    padding: 10px 28px;
    margin-bottom: 20px;
    border-radius: 999px;
    border: 1px solid rgba(0,219,255,.25);
    color: #CFFAFE;
    letter-spacing: 1px;
}

.ai-core-react-header h2 {
    font-size: clamp(38px, 5vw, 72px);
    font-weight: 900;
    letter-spacing: -2px;
    margin: 0;
    color:#0800ff;
}

.ai-core-react-header h2 strong {
    color: #67E8F9;
    text-shadow: 0 0 28px rgba(0,219,255,.55);
}

.ai-core-react-header p {
    color: #CBD5E1;
    font-size: 18px;
    margin-top: 12px;
}

/* PROGRESS */

.ai-core-progress {
    max-width: 760px;
    margin: 0 auto 34px;
}

.ai-core-progress-text {
    font-weight: 800;
    color: #CBD5E1;
    margin-bottom: 10px;
}

.ai-core-progress-bar {
    height: 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
}

.ai-core-progress-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #7C3AED, #00DBFF);
    box-shadow: 0 0 25px rgba(0,219,255,.35);
    transition: width .45s ease;
}

/* GRID */

.ai-core-react-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 22px;
    width: 100%;
}

/* CARDS */

.ai-react-card {
    position: relative;
    min-height: 220px;
    padding: 24px;
    border-radius: 22px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.07);
    transition: all .35s ease;
    cursor: pointer;
    backdrop-filter: blur(4px); /* Para mejor visibilidad */
}

.ai-react-card h3 {
    color: #fff;
    font-size: 20px;
    font-weight: 900;
    margin: 16px 0 10px;
}

.ai-react-card p {
    color: #CBD5E1;
    font-size: 15px;
    line-height: 1.5;
}

.ai-react-icon {
    font-size: 34px;
}

.ai-react-card.locked {
    opacity: 0.4;
    filter: grayscale(0.6);
    cursor: not-allowed;
    pointer-events: none;
}

.ai-react-card.active:hover {
    transform: translateY(-6px);
    border-color: rgba(0,219,255,.45);
    box-shadow: 0 0 35px rgba(0,219,255,.18);
}

.ai-react-card.completed {
    border-color: #00ff9d;
    background: rgba(0,255,157,.08);
    box-shadow: 0 0 25px rgba(0,255,157,.15);
}

.ai-lock,
.ai-check {
    position: absolute;
    top: 18px;
    right: 18px;
}

.ai-check {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #00ff9d;
    color: #02030a;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
}

/* RESET */

.ai-reset-btn {
    margin: 34px auto 0;
    display: block;
    padding: 12px 24px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(255,255,255,.06);
    color: #CBD5E1;
    font-weight: 800;
    cursor: pointer;
}

/* MODAL */

.ai-mission-modal {
    position: fixed;
    inset: 0;
    z-index: 99999999;
    background: rgba(2,3,10,.86);
    backdrop-filter: blur(20px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ai-mission-panel {
    position: relative;
    width: min(800px, 92vw);
    padding: 46px;
    border-radius: 30px;
    background:
        radial-gradient(circle at top, rgba(124,58,237,.25), transparent 38%),
        linear-gradient(180deg, #060816, #0B1023);
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 30px 90px rgba(0,0,0,.65);
    text-align: center;
}

.ai-mission-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.08);
    color: #fff;
    font-size: 26px;
    cursor: pointer;
}

.ai-mission-icon {
    font-size: 64px;
    margin-bottom: 18px;
}

.ai-mission-panel h2 {
    font-size: 42px;
    font-weight: 900;
    color: #fff;
}

.ai-mission-panel p {
    color: #CBD5E1;
    font-size: 17px;
    line-height: 1.6;
}

.ai-mini-challenge {
    margin: 28px 0;
    padding: 20px;
    border-radius: 20px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
}

.ai-mini-challenge h4 {
    color: #67E8F9;
    letter-spacing: 1px;
}

.ai-complete-btn {
    padding: 16px 28px;
    border: none;
    border-radius: 18px;
    background: linear-gradient(90deg, #FFB200, #FFD54A);
    color: #050816;
    font-weight: 900;
    cursor: pointer;
}

/* MOBILE */

@media (max-width: 991px) {
    .ai-core-react-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .ai-core-react-grid {
        grid-template-columns: 1fr;
    }

    .ai-core-react-engine {
        padding: 10px;
    }

    .ai-mission-panel {
        padding: 34px 22px;
        position:relative;
        bottom:70px;
    }
}

.ai-react-card.active {
    background: rgba(255,255,255,.1);
    border-color: rgba(0,219,255,.55);
    box-shadow: 0 0 30px rgba(0,219,255,.2);
    cursor: pointer;
}
/* =========================================
   🌌 AI VIDEO SECTION
========================================= */

.ai-video-section{

    position:relative;

    margin:28px 0;

    text-align:center;

    padding:24px;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.02)
    );

    border:1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(18px);

    box-shadow:
    0 10px 40px rgba(0,0,0,.35),
    0 0 30px rgba(0,219,255,.06);

    overflow:hidden;
}

.ai-video-section::before{

    content:"";

    position:absolute;

    inset:0;

    background:
    radial-gradient(
        circle at top,
        rgba(0,219,255,.08),
        transparent 60%
    );

    pointer-events:none;
}

.ai-video-section h4{

    position:relative;

    z-index:2;

    margin-bottom:18px;

    color:#67E8F9;

    font-size:22px;

    font-weight:900;

    letter-spacing:1px;

    text-shadow:
    0 0 18px rgba(0,219,255,.35);
}

/* =========================================
   🌌 PREMIUM BUTTONS
========================================= */

.ai-watch-btn,
.ai-quiz-btn,
.quiz-submit-btn,
.ai-back-btn{

    position:relative;

    overflow:hidden;

    border:none;

    border-radius:18px;

    padding:15px 24px;

    cursor:pointer;

    font-weight:900;

    letter-spacing:1px;

    color:#fff;

    transition:
    transform .35s ease,
    box-shadow .35s ease,
    border .35s ease;

    background:
    linear-gradient(
        135deg,
        #0F172A,
        #1E293B
    );

    border:1px solid rgba(255,255,255,.08);

    box-shadow:
    0 8px 24px rgba(0,0,0,.35);
}

.ai-watch-btn::before,
.ai-quiz-btn::before,
.quiz-submit-btn::before{

    content:"";

    position:absolute;

    top:-50%;

    left:-120%;

    width:120%;

    height:200%;

    background:
    linear-gradient(
        90deg,
        transparent,
        rgba(0,219,255,.25),
        transparent
    );

    transform:rotate(15deg);

    transition:left .7s ease;
}

.ai-watch-btn:hover::before,
.ai-quiz-btn:hover::before,
.quiz-submit-btn:hover::before{

    left:120%;
}

.ai-watch-btn:hover,
.ai-quiz-btn:hover,
.quiz-submit-btn:hover{

    transform:translateY(-3px);

    border-color:rgba(0,219,255,.25);

    box-shadow:
    0 0 30px rgba(0,219,255,.18),
    0 14px 40px rgba(0,0,0,.45);
}

/* =========================================
   🌌 BACK BUTTON
========================================= */

.ai-back-btn{

    background:
    linear-gradient(
        135deg,
        #1E293B,
        #111827
    );

    margin-top:20px;
}

.ai-back-btn:hover{

    border-color:
    rgba(255,255,255,.18);
}

/* =========================================
   🌌 QUIZ CONTAINER
========================================= */

.quiz-container{

    margin:24px 0;

    max-height:520px;

    overflow-y:auto;

    padding:10px;

    display:flex;

    flex-direction:column;

    gap:18px;
}

/* =========================================
   🌌 QUIZ QUESTION CARD
========================================= */

.quiz-question{

    position:relative;

    padding:22px;

    border-radius:22px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.025)
    );

    border:1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(12px);

    box-shadow:
    0 10px 24px rgba(0,0,0,.25);

    overflow:hidden;
}

.quiz-question::before{

    content:"";

    position:absolute;

    inset:0;

    background:
    radial-gradient(
        circle at top,
        rgba(124,58,237,.12),
        transparent 70%
    );

    pointer-events:none;
}

.quiz-question h5{

    position:relative;

    z-index:2;

    color:#fff;

    font-size:18px;

    font-weight:800;

    line-height:1.5;
}

/* =========================================
   🌌 QUIZ OPTIONS
========================================= */

.quiz-options-step,
.quiz-options{

    display:flex !important;

    flex-direction:column !important;

    gap:14px !important;

    width:100%;
}

.quiz-option-step,
.ai-quiz-btn{

    width:100% !important;

    justify-content:flex-start !important;

    text-align:left !important;

    padding:0 18px !important;

    min-height:52px !important;

    font-size:16px !important;

    font-weight:700 !important;

    border-radius:16px !important;
}

.quiz-option{

    position:relative;

    display:flex;

    align-items:center;

    gap:14px;

    cursor:pointer;

    padding:14px 16px;

    border-radius:16px;

    transition:
    all .25s ease;

    background:
    rgba(255,255,255,.035);

    border:1px solid rgba(255,255,255,.05);
}

.quiz-option:hover{

    transform:translateX(4px);

    background:
    rgba(0,219,255,.06);

    border-color:
    rgba(0,219,255,.18);

    box-shadow:
    0 0 20px rgba(0,219,255,.08);
}

.quiz-option input{

    width:18px;
    height:18px;

    accent-color:#00DBFF;

    cursor:pointer;
}

.quiz-option span{

    color:#E2E8F0;

    font-weight:600;

    line-height:1.45;
}

/* =========================================
   🌌 QUIZ SUBMIT
========================================= */

.quiz-submit-btn{

    width:100%;

    margin-top:26px;

    background:
    linear-gradient(
        90deg,
        #7C3AED,
        #00DBFF
    );

    color:#fff;

    font-size:15px;

    text-transform:uppercase;

    box-shadow:
    0 0 30px rgba(0,219,255,.16);
}

/* =========================================
   🌌 COMPLETED STATE
========================================= */

.quiz-completed{

    position:relative;

    overflow:hidden;

    padding:28px;

    border-radius:24px;

    text-align:center;

    margin:28px 0;

    background:
    linear-gradient(
        180deg,
        rgba(0,255,157,.12),
        rgba(0,255,157,.04)
    );

    border:1px solid rgba(0,255,157,.25);

    box-shadow:
    0 0 40px rgba(0,255,157,.12);
}

.quiz-completed::before{

    content:"";

    position:absolute;

    inset:0;

    background:
    radial-gradient(
        circle at top,
        rgba(0,255,157,.18),
        transparent 65%
    );

    pointer-events:none;
}

.quiz-completed h4{

    position:relative;

    z-index:2;

    color:#00ff9d;

    font-size:26px;

    font-weight:900;

    margin-bottom:14px;

    text-shadow:
    0 0 18px rgba(0,255,157,.25);
}

.quiz-completed p{

    position:relative;

    z-index:2;

    color:#D1FAE5;

    line-height:1.6;
}

/* =========================================
   🌌 QUIZ PANEL
========================================= */

.ai-mission-panel.quiz-panel{

    max-width:860px !important;

    max-height:90vh !important;

    overflow-y:auto !important;

    padding:34px;
}

/* =========================================
   🌌 PREMIUM SCROLLBAR
========================================= */

.quiz-container::-webkit-scrollbar{

    width:8px;
}

.quiz-container::-webkit-scrollbar-track{

    background:
    rgba(255,255,255,.04);

    border-radius:999px;
}

.quiz-container::-webkit-scrollbar-thumb{

    background:
    linear-gradient(
        180deg,
        #7C3AED,
        #00DBFF
    );

    border-radius:999px;

    box-shadow:
    0 0 12px rgba(0,219,255,.25);
}

/* =========================================
   🌌 MOBILE
========================================= */

@media(max-width:768px){

    .ai-video-section{

        padding:18px;
        height:80vw;
    }

    .quiz-question{

        padding:18px;
    }

    .quiz-option{

        padding:12px;
    }

    .ai-watch-btn,
    .ai-quiz-btn,
    .quiz-submit-btn,
    .ai-back-btn{

        width:100%;
    }

    .ai-mission-panel.quiz-panel{

        padding:22px;
    }

}
.ai-mission-panel button,
.ai-core-react-engine button {
    line-height: normal !important;
    font-size: 15px !important;
    padding: 12px 18px !important;
    border-radius: 16px !important;
    text-transform: none !important;
}

.quiz-option-step,
.ai-quiz-btn {
    min-height: 46px !important;
    line-height: 1.2 !important;
    padding: 10px 16px !important;
    font-size: 15px !important;
    border-radius: 999px !important;
}

.quiz-next-btn,
.quiz-submit-btn,
.ai-back-btn {
    line-height: normal !important;
    padding: 13px 22px !important;
    font-size: 15px !important;
}

.ai-holo-avatar{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:12px;

    margin-bottom:22px;
}

.ai-holo-core{

    width:92px;
    height:92px;

    border-radius:50%;

    display:flex;

    align-items:center;
    justify-content:center;

    font-size:42px;

    background:
    radial-gradient(circle,#00DBFF 0%,#09111f 70%);

    border:1px solid rgba(0,219,255,.35);

    box-shadow:
    0 0 35px rgba(0,219,255,.35);

    animation:
    holoPulse 2.5s infinite;
}

.ai-holo-avatar span{

    color:#E2E8F0;

    font-size:14px;

    font-weight:800;

    letter-spacing:2px;
}

.ai-holo-avatar.correct .ai-holo-core{

    background:
    radial-gradient(circle,#00ff9d 0%,#07140f 70%);

    box-shadow:
    0 0 40px rgba(0,255,157,.35);
}

.ai-holo-avatar.incorrect .ai-holo-core{

    background:
    radial-gradient(circle,#ff4d6d 0%,#19070d 70%);

    box-shadow:
    0 0 40px rgba(255,77,109,.35);
}

@keyframes holoPulse{

    0%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.05);
    }

    100%{
        transform:scale(1);
    }
}

.ai-rank-panel{

    display:flex;

    align-items:center;

    gap:18px;

    margin:0 auto 28px;

    max-width:760px;

    padding:20px 24px;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.025)
    );

    border:1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(18px);

    box-shadow:
    0 10px 30px rgba(0,0,0,.35);
}

.ai-rank-avatar{

    width:74px;
    height:74px;

    border-radius:50%;

    display:flex;

    align-items:center;
    justify-content:center;

    font-size:34px;

    background:
    radial-gradient(
        circle,
        #00DBFF 0%,
        #09111f 70%
    );

    border:1px solid rgba(0,219,255,.25);

    box-shadow:
    0 0 30px rgba(0,219,255,.18);
}

.ai-rank-info span{

    color:#67E8F9;

    font-size:12px;

    letter-spacing:2px;

    font-weight:800;
}

.ai-rank-info h3{

    color:#fff;

    font-size:28px;

    margin:4px 0;
}

.ai-rank-info p{

    color:#CBD5E1;

    font-size:14px;

    margin:0;
}

.ai-premium-avatar {
    position: relative;
    width: 150px;
    height: 150px;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ai-avatar-core {
    position: relative;
    z-index: 3;
    width: 86px;
    height: 86px;
    border-radius: 32px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.95), rgba(150,220,255,.55)),
        radial-gradient(circle at top, rgba(0,219,255,.55), transparent 60%);
    border: 1px solid rgba(255,255,255,.55);
    box-shadow:
        0 0 35px rgba(0,219,255,.45),
        0 0 80px rgba(124,58,237,.25),
        inset 0 0 22px rgba(255,255,255,.35);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: aiAvatarFloat 3.2s ease-in-out infinite;
    left:30px;
    top:-25px;

}

.ai-avatar-face {
    position: relative;
    width: 70px;
    height: 58px;
    border-radius: 22px;
    background: rgba(5,8,22,.92);
    box-shadow: inset 0 0 18px rgba(0,219,255,.28);
}

.ai-avatar-eye {
    position: absolute;
    top: 18px;
    width: 10px;
    height: 18px;
    border-radius: 999px;
    background: #00DBFF;
    box-shadow:
        0 0 10px #00DBFF,
        0 0 20px rgba(0,219,255,.6);
    animation: aiBlink 4s infinite;
}

.ai-avatar-eye.left {
    left: 18px;
}

.ai-avatar-eye.right {
    right: 18px;
}

.ai-avatar-mouth {
    position: absolute;
    left: 50%;
    bottom: 15px;
    width: 26px;
    height: 6px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: rgba(0,219,255,.9);
    box-shadow: 0 0 12px rgba(0,219,255,.75);
}

.ai-avatar-orbit {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(0,219,255,.22);
    box-shadow: 0 0 22px rgba(0,219,255,.14);
}

.orbit-one {
    width: 130px;
    height: 130px;
    animation: aiOrbit 7s linear infinite;
}

.orbit-two {
    width: 150px;
    height: 92px;
    border-color: rgba(124,58,237,.28);
    animation: aiOrbitReverse 9s linear infinite;
}

.ai-avatar-scan {
    position: absolute;
    z-index: 4;
    width: 88px;
    height: 2px;
    background: linear-gradient(90deg, transparent, #00DBFF, transparent);
    box-shadow: 0 0 16px rgba(0,219,255,.8);
    animation: aiScan 2.4s ease-in-out infinite;
}

.ai-premium-avatar.correct .ai-avatar-core {
    box-shadow:
        0 0 40px rgba(0,255,157,.55),
        0 0 90px rgba(0,255,157,.25),
        inset 0 0 22px rgba(255,255,255,.35);
}

.ai-premium-avatar.correct .ai-avatar-eye,
.ai-premium-avatar.correct .ai-avatar-mouth {
    background: #00ff9d;
    box-shadow: 0 0 18px rgba(0,255,157,.85);
}

.ai-premium-avatar.incorrect .ai-avatar-core {
    box-shadow:
        0 0 40px rgba(255,77,109,.55),
        0 0 90px rgba(255,77,109,.25),
        inset 0 0 22px rgba(255,255,255,.35);
}

.ai-premium-avatar.incorrect .ai-avatar-eye,
.ai-premium-avatar.incorrect .ai-avatar-mouth {
    background: #ff4d6d;
    box-shadow: 0 0 18px rgba(255,77,109,.85);
}

.ai-avatar-status{

    margin-top:100px;
    margin-left:-100px;

    font-family:'Orbitron', sans-serif;

    font-size:13px;

    font-weight:700;

    letter-spacing:2.5px;

    text-transform:uppercase;

    color:#E2E8F0;

    text-shadow:
    0 0 12px rgba(0,219,255,.25);

    animation:
    aiStatusGlow 2s infinite;
}

@keyframes aiAvatarFloat {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }

    50% {
        transform: translateY(-10px) rotate(1deg);
    }
}

@keyframes aiBlink {
    0%, 92%, 100% {
        transform: scaleY(1);
    }

    95% {
        transform: scaleY(.15);
    }
}

@keyframes aiOrbit {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes aiOrbitReverse {
    from {
        transform: rotate(360deg);
    }

    to {
        transform: rotate(0deg);
    }
}

@keyframes aiScan {
    0%, 100% {
        transform: translateY(-38px);
        opacity: .25;
    }

    50% {
        transform: translateY(38px);
        opacity: 1;
    }
}

button.quiz-next-btn {
    background-color: #fff;
    color: #252850;
}
.quiz-question-card{

    transition:
    all .65s cubic-bezier(.19,1,.22,1);

    transform-origin:center;
}

.transition-in{

    opacity:1;

    transform:
    translateY(0)
    scale(1);

    filter:
    blur(0px);
}

.transition-out{

    opacity:0;

    transform:
    translateY(-28px)
    scale(.96);

    filter:
    blur(10px);
}

.quiz-completed-screen{

    text-align:center;

    padding:40px 20px;
}

.quiz-finish-avatar{

    width:120px;
    height:120px;

    margin:0 auto 24px;

    border-radius:50%;

    display:flex;

    align-items:center;
    justify-content:center;

    font-size:54px;

    background:
    radial-gradient(
        circle,
        rgba(0,255,157,.25),
        rgba(0,0,0,.2)
    );

    box-shadow:
    0 0 40px rgba(0,255,157,.35);
}

.quiz-completed-screen h2{

    color:#fff;

    font-size:48px;

    margin-bottom:18px;
}

.quiz-completed-screen p{

    color:#CBD5E1;

    max-width:620px;

    margin:0 auto 34px;

    line-height:1.7;
}

.quiz-finish-stats{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

    margin-bottom:36px;
}

.finish-stat{

    min-width:220px;

    padding:24px;

    border-radius:22px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.02)
    );

    border:1px solid rgba(255,255,255,.08);
}

.finish-stat strong{

    display:block;

    color:#67E8F9;

    font-size:34px;

    margin-bottom:10px;
}

.finish-stat span{

    color:#CBD5E1;

    letter-spacing:1px;

    font-size:13px;
}

.quiz-finish-btn{

    padding:18px 34px;

    border:none;

    border-radius:18px;

    background:
    linear-gradient(
        90deg,
        #7C3AED,
        #00DBFF
    );

    color:#fff;

    font-weight:900;

    letter-spacing:1px;

    cursor:pointer;

    box-shadow:
    0 0 35px rgba(0,219,255,.25);
}

.ai-badge-unlock{

    position:fixed;

    inset:0;

    z-index:999999999;

    display:flex;

    align-items:center;
    justify-content:center;

    pointer-events:none;
}

.ai-badge-card{

    width:420px;

    padding:38px;

    border-radius:32px;

    text-align:center;

    background:
    radial-gradient(
        circle at top,
        rgba(124,58,237,.45),
        rgba(5,8,22,.98)
    );

    border:
    1px solid rgba(0,219,255,.25);

    box-shadow:
    0 0 60px rgba(0,219,255,.25),
    0 0 120px rgba(124,58,237,.2);

    animation:
    badgeReveal .8s cubic-bezier(.19,1,.22,1);
}

.ai-badge-icon{

    font-size:74px;

    margin-bottom:20px;

    animation:
    badgePulse 2s infinite;
}

.ai-badge-card span{

    display:block;

    color:#67E8F9;

    letter-spacing:3px;

    font-size:12px;

    margin-bottom:14px;

    font-family:'Orbitron', sans-serif;
}

.ai-badge-card h2{

    color:#fff;

    font-size:38px;

    margin-bottom:16px;
}

.ai-badge-card p{

    color:#CBD5E1;

    line-height:1.7;
}

@keyframes badgeReveal{

    0%{

        opacity:0;

        transform:
        scale(.6)
        rotate(-8deg);
    }

    100%{

        opacity:1;

        transform:
        scale(1)
        rotate(0deg);
    }
}

@keyframes badgePulse{

    0%,100%{

        transform:scale(1);
    }

    50%{

        transform:scale(1.15);
    }
}

.ai-badges-panel{

    margin:40px auto;

    max-width:1100px;
}

.ai-badges-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:22px;
}

.ai-badges-header h3{

    color:#fff;

    font-size:28px;

    margin:0;
}

.ai-badges-header span{

    color:#67E8F9;

    letter-spacing:2px;

    font-size:12px;

    font-family:'Orbitron',sans-serif;
}

.ai-badges-grid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(220px,1fr));

    gap:18px;
}

.ai-badge-item{

    position:relative;

    padding:26px;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.02)
    );

    border:
    1px solid rgba(255,255,255,.08);

    transition:
    transform .35s ease,
    border .35s ease;
}

.ai-badge-item.unlocked{

    border-color:
    rgba(0,219,255,.25);

    box-shadow:
    0 0 30px rgba(0,219,255,.12);
}

.ai-badge-item.locked{

    opacity:.45;

    filter:grayscale(1);
}

.ai-badge-item:hover{

    transform:
    translateY(-6px);
}

.ai-badge-item-icon{

    font-size:52px;

    margin-bottom:18px;
}

.ai-badge-item h4{

    color:#fff;

    font-size:18px;

    margin-bottom:12px;
}

.ai-badge-item p{

    color:#CBD5E1;

    line-height:1.6;

    font-size:14px;
}

.singularity-screen{

    position:fixed;

    inset:0;

    z-index:9999999999;

    background:
    radial-gradient(
        circle at center,
        rgba(124,58,237,.25),
        rgba(2,3,10,.98)
    );

    backdrop-filter:blur(18px);

    display:flex;

    flex-direction:column;

    align-items:center;
    justify-content:center;

    text-align:center;

    padding:40px;

    animation:
    singularityReveal 1.2s ease;
}

.singularity-core{

    position:relative;

    width:220px;
    height:220px;

    margin-bottom:40px;

    display:flex;

    align-items:center;
    justify-content:center;
}

.singularity-ring{

    position:absolute;

    inset:0;

    border-radius:50%;

    border:
    1px solid rgba(0,219,255,.25);

    animation:
    singularityRotate 8s linear infinite;

    box-shadow:
    0 0 40px rgba(0,219,255,.25);
}

.singularity-ring.second{

    inset:24px;

    border-color:
    rgba(255,255,255,.12);

    animation-direction:reverse;
}

.singularity-icon{

    position:relative;

    z-index:2;

    font-size:92px;

    animation:
    singularityPulse 2s infinite;
}

.singularity-screen span{

    color:#67E8F9;

    letter-spacing:4px;

    font-size:13px;

    margin-bottom:18px;

    font-family:'Orbitron',sans-serif;
}

.singularity-screen h1{

    color:#fff;

    font-size:72px;

    line-height:1;

    margin-bottom:24px;
}

.singularity-screen p{

    max-width:760px;

    color:#CBD5E1;

    line-height:1.8;

    font-size:18px;

    margin-bottom:38px;
}

.singularity-btn{

    padding:18px 34px;

    border:none;

    border-radius:20px;

    background:
    linear-gradient(
        90deg,
        #7C3AED,
        #00DBFF
    );

    color:#fff;

    font-weight:900;

    letter-spacing:2px;

    cursor:pointer;

    box-shadow:
    0 0 40px rgba(0,219,255,.25);
}

@keyframes singularityReveal{

    from{

        opacity:0;

        transform:scale(1.2);
    }

    to{

        opacity:1;

        transform:scale(1);
    }
}

@keyframes singularityRotate{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

@keyframes singularityPulse{

    0%,100%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.12);
    }
}

/* Modal de finalización bonito */
.completion-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
    animation: fadeIn 0.3s ease;
}

.completion-modal {
    background: linear-gradient(135deg, #0a0a2a 0%, #1a1a4a 100%);
    border-radius: 32px;
    padding: 40px;
    max-width: 500px;
    width: 90%;
    text-align: center;
    border: 2px solid rgba(0, 255, 255, 0.3);
    box-shadow: 0 0 50px rgba(0, 255, 255, 0.2);
    animation: slideUp 0.4s ease;
}

.completion-animation {
    position: relative;
    margin-bottom: 20px;
}

.completion-icon {
    font-size: 80px;
    animation: bounce 0.6s ease;
}

.completion-sparkles {
    font-size: 30
    
}

/* =========================================
🌌 UNIVERSE LOCKED NODES
========================================= */

.ai-route-world .route-card.locked {
    opacity: .35;
    filter: grayscale(1) brightness(.55);
    transform: scale(.92);
    transition: all .5s ease;
    position: relative;
    overflow: hidden;
}

/* =========================================
🔒 LOCK ICON
========================================= */

.ai-route-world .route-card.locked::after {
    content: "🔒";
    position: absolute;
    top: 16px;
    right: 16px;

    width: 54px;
    height: 54px;

    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;

    background: rgba(5,8,18,.95);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 0 20px rgba(0,0,0,.5);

    font-size: 34px;
    z-index: 30;
}

/* =========================================
🌌 UNLOCKED
========================================= */

.ai-route-world .route-card.unlocked {
    opacity: 1;
    filter: none;
    transform: scale(1);
    overflow: hidden;
}

/* =========================================
🌌 POSITION NODOS
========================================= */

.ai-route-world .tree-block .city-node {
    position: absolute;
    top: -10%;
    left: 150px;
    transform: translateY(-50%);
    z-index: 999999;
}

/* =========================================================
   NEXUS PANEL - MOBILE PERFECT
========================================================= */

@media (max-width: 768px) {

    .nexus-panel {
        top: 72px !important;
        left: 10px !important;
        right: auto !important;

        width: 58px !important;
        max-width: 58px !important;

        height: calc(100dvh - 150px) !important;
        max-height: calc(100dvh - 150px) !important;

        padding: 10px 6px !important;

        border-radius: 24px !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;

        z-index: 99999 !important;
    }

    .nexus-panel.is-open,
    .nexus-panel.open,
    .nexus-panel.active {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;

        left: 12px !important;
        right: 12px !important;

        padding: 18px !important;
    }

    .nexus-toggle {
        top: 14px !important;
        right: 8px !important;

        width: 34px !important;
        height: 46px !important;

        font-size: 16px !important;

        z-index: 100000 !important;
    }
}



/* =========================================
🚀 AULÓPOLIS NEXUS PANEL
========================================= */

.nexus-panel{

    position:fixed;

    top:100px;

    left:20px;

    width:260px;

    height:calc(90vh - 20px);

    z-index:99999;

    padding:24px;

    border-radius:28px;

    background:
    radial-gradient(
        circle at top,
        rgba(56,189,248,.14),
        transparent 35%
    ),
    rgba(8,12,28,.90);

    backdrop-filter:blur(30px);
    -webkit-backdrop-filter:blur(30px);

    border:
    1px solid rgba(255,255,255,.08);

    box-shadow:
    0 20px 80px rgba(0,0,0,.45),
    0 0 40px rgba(0,180,255,.12);

    overflow-y:auto;
    overflow-x:visible;

    display:flex;
    display:flex;

    flex-direction:column;
}

/* TOGGLE */

/* =========================================
🚀 CANVAS STYLE TAB
========================================= */

.nexus-toggle{
    position:absolute;
    top:28px;
    right:15px;

    width:36px;
    height:56px;

    border:none;
    border-radius:18px;

    background:
    transparent;

    color:#7dd3fc;
    cursor:pointer;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:18px;
    font-weight:900;

    box-shadow:
    transparent;


    z-index:100000;
    transition:.28s ease;
}

.nexus-toggle:hover{
    transform:translateX(3px) scale(1.04);
    color:#fff;
}
.nexus-toggle svg{

    width:18px;
    height:18px;
}

.nexus-nav{

    flex:1;

    display:flex;

    flex-direction:column;

    justify-content:flex-start;

    gap:6px;

    margin-top:10px;
}

/* LOGO */

.nexus-logo{
    text-align:center;
    margin-bottom:12px;
}

.nexus-core {
    position: relative !important;
    z-index: 20 !important;

    width: 58px !important;
    height: 58px !important;
    margin: 0 auto 14px auto !important;

    border-radius: 50% !important;

    background:
        radial-gradient(
            circle at 35% 30%,
            #ffffff 0%,
            #a5f3fc 10%,
            #38bdf8 28%,
            #2563eb 62%,
            #020617 100%
        ) !important;

    box-shadow:
        0 0 18px rgba(56, 189, 248, .95),
        0 0 42px rgba(56, 189, 248, .75),
        0 0 90px rgba(37, 99, 235, .55),
        inset 0 0 16px rgba(255, 255, 255, .38),
        inset -10px -12px 20px rgba(0, 0, 0, .55) !important;

    border: 1px solid rgba(165, 243, 252, .65) !important;

    animation: nexusPulse 3s ease-in-out infinite !important;
}
.nexus-logo h3{
    margin:8px 0 2px;
    color:#fff;
    font-size:15px;
    letter-spacing:2px;
}

.nexus-logo span{
    color:#7dd3fc;
    font-size:10px;
    letter-spacing:4px;
}

/* DIVIDER */

.nexus-divider{
    height:1px;
    margin:10px 0;

    background:
    linear-gradient(
        90deg,
        transparent,
        rgba(125,211,252,.35),
        transparent
    );
}

/* MENU */

.nexus-item{
    display:flex;
    align-items:center;
    gap:10px;

    padding:8px 10px;
    margin-bottom:4px;

    border-radius:14px;

    text-decoration:none;
    color:white;

    transition:
    background .25s ease,
    transform .25s ease,
    border .25s ease;

    border:1px solid transparent;
}

.nexus-item:hover{
    background:rgba(56,189,248,.12);
    transform:translateX(5px);
    border-color:rgba(56,189,248,.22);
}

.nexus-item.active{
    background:rgba(56,189,248,.18);
    border:1px solid rgba(56,189,248,.35);
    box-shadow:0 0 18px rgba(56,189,248,.12);
}

.nexus-item span{
    font-size:19px;
    width:24px;
    text-align:center;
}

.nexus-item label{
    cursor:pointer;
    font-size:12px;
    letter-spacing:1px;
    font-weight:700;
}

/* STATS */

.stat{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:6px;
}

.stat span{
    color:#94a3b8;
    font-size:11px;
    letter-spacing:1px;
}

.stat strong{
    color:#fff;
    font-size:12px;
}

/* TOOLS */

.nexus-tool{
    width:100%;
    margin-bottom:6px;

    border:none;
    border-radius:12px;

    background:rgba(255,255,255,.05);
    color:white;

    padding:9px;

    cursor:pointer;

    font-size:12px;
    font-weight:700;
    letter-spacing:.5px;

    transition:.25s ease;
}

.nexus-tool:hover{
    background:rgba(56,189,248,.15);
    transform:translateY(-2px);
}

/* COLLAPSED */

.nexus-panel.collapsed{
    width:76px;
    padding:18px 10px;
    border-radius:32px;
    overflow-y:auto;
    overflow-x:visible;
    
}
.nexus-panel.collapsed .nexus-logo{
    margin-bottom:18px;
}

.nexus-panel.collapsed .nexus-logo h3,
.nexus-panel.collapsed .nexus-logo span,
.nexus-panel.collapsed .nexus-item label,
.nexus-panel.collapsed .nexus-stats,
.nexus-panel.collapsed .nexus-tools{
    display:none;
}

.nexus-panel.collapsed .nexus-nav{
    align-items:center;
    gap:14px;
    
}
.nexus-stats{

    margin-top:auto;
}

.nexus-tools{

    margin-top:12px;
}
.nexus-panel.collapsed .nexus-core{
    width:52px;
    height:52px;
}

.nexus-panel.collapsed .nexus-item{
    width:52px;
    height:52px;
    padding:0;
    margin:0;
    justify-content:center;
    border-radius:18px;
}


.nexus-panel.collapsed .nexus-item span{
    font-size:25px;
    width:auto;
}

.nexus-panel.collapsed .nexus-divider{
    width:42px;
    margin:14px auto;
}

/* =========================================
🚀 COLLAPSED TOGGLE
========================================= */

.nexus-panel.collapsed .nexus-toggle{

    width:48px;

    height:48px;

    border-radius:14px;

    margin:12px auto;

    display:flex;

    align-items:center;

    justify-content:center;

    position:relative;

    left:auto;

    right:auto;

    top:auto;
}

/* SCROLL */

.nexus-panel::-webkit-scrollbar{
    width:4px;
}

.nexus-panel::-webkit-scrollbar-thumb{
    background:rgba(125,211,252,.35);
    border-radius:999px;
}

/* ANIMATION */

@keyframes nexusPulse{
    0%,100%{
        transform:scale(1);
        box-shadow:0 0 28px rgba(56,189,248,.65);
    }

    50%{
        transform:scale(1.06);
        box-shadow:0 0 44px rgba(56,189,248,.95);
    }
}

/* =========================================
🌌 NEXUS BEAM
========================================= */

.nexus-beam{

    position:absolute;

    top:0;

    left:50%;

    transform:translateX(-50%);

    width:8px;

    height:100%;

    border-radius:999px;

    background:
    linear-gradient(
        180deg,
        transparent,
        rgba(0,219,255,.9),
        rgba(125,211,252,.95),
        rgba(0,219,255,.9),
        transparent
    );

    box-shadow:

    0 0 25px rgba(0,219,255,.55),

    0 0 80px rgba(0,219,255,.25);

    z-index:0;

    pointer-events:none;

    animation:
    nexusBeamPulse 4s ease-in-out infinite;
}

@keyframes nexusBeamPulse{

    0%,100%{

        opacity:.55;
    }

    50%{

        opacity:1;
    }
}

.nexus-beam::after{

    content:"";

    position:absolute;

    left:50%;

    top:0;

    transform:translateX(-50%);

    width:18px;

    height:18px;

    border-radius:50%;

    background:#7dd3fc;

    box-shadow:
    0 0 25px #7dd3fc;

    animation:
    energyTravel 8s linear infinite;
}

@keyframes energyTravel{

    from{
        top:0;
    }

    to{
        top:100%;
    }
}

/* =========================================
🚀 NEXUS AUTH
========================================= */

.nexus-auth{

    margin-top:18px;

    padding-top:18px;

    border-top:
    1px solid rgba(255,255,255,.08);
}

.nexus-auth-title{

    color:#7dd3fc;

    font-size:11px;

    font-weight:800;

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:10px;
}

.nexus-auth p{

    color:#94a3b8;

    font-size:12px;

    line-height:1.5;

    margin-bottom:14px;
}

/* =========================================
🌌 GALAXY LITE BUTTONS
========================================= */

.nexus-login,
.nexus-register{

    position:relative;

    overflow:hidden;

    display:flex;

    align-items:center;

    justify-content:center;

    width:100%;

    height:46px;

    margin-bottom:10px;

    border-radius:14px;

    text-decoration:none;

    font-size:12px;

    font-weight:800;

    letter-spacing:2px;

    transition:
    all .35s ease;
}

/* LOGIN */

.nexus-login{

    color:white;

    background:

    linear-gradient(
        135deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.02)
    );

    border:
    1px solid rgba(255,255,255,.08);

    backdrop-filter:
    blur(12px);
}

/* REGISTER */

.nexus-register{

    color:white;

    background:

    linear-gradient(
        135deg,
        #00D9FF,
        #2563EB
    );

    box-shadow:

    0 0 20px rgba(0,217,255,.18);
}

/* =========================================
✨ GALAXY EFFECT
========================================= */

.nexus-login::before,
.nexus-register::before{

    content:"";

    position:absolute;

    top:-40px;
    left:-60px;

    width:80px;
    height:120px;

    background:

    linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.35),
        transparent
    );

    transform:
    rotate(20deg);

    transition:
    all .8s ease;
}

.nexus-login:hover::before,
.nexus-register:hover::before{

    left:160%;
}

/* =========================================
🚀 HOVER
========================================= */

.nexus-login:hover{

    transform:
    translateY(-2px);

    border-color:
    rgba(125,211,252,.35);

    box-shadow:

    0 0 20px rgba(125,211,252,.15);
}

.nexus-register:hover{

    transform:
    translateY(-3px);

    box-shadow:

    0 0 25px rgba(0,217,255,.35),

    0 0 50px rgba(0,217,255,.18);
}

/* =========================================
🚀 NEXUS COLLAPSED MODE
========================================= */

.nexus-panel.collapsed{

    width:90px;
}

/* LOGO */

.nexus-panel.collapsed .nexus-logo{

    display:none;
}

/* DIVIDERS */

.nexus-panel.collapsed .nexus-divider{

    display:none;
}

/* STATS */

.nexus-panel.collapsed .nexus-stats{

    display:none;
}

/* TOOLS */

.nexus-panel.collapsed .nexus-tools{

    display:none;
}

/* AUTH */

.nexus-panel.collapsed .nexus-auth{

    display:none;
}

/* MENU LABELS */

.nexus-panel.collapsed .nexus-item label{

    display:none;
}

/* ICON CENTER */

.nexus-panel.collapsed .nexus-item{

    justify-content:center;

    padding:14px 0;
}

/* ICON SIZE */

.nexus-panel.collapsed .nexus-item span{

    font-size:24px;
}
.nexus-panel.collapsed{
    width:78px;
}


/* =========================================================
   AULÓPOLIS NEXUS - MOBILE GAME MODE FIX FINAL
   Pegar AL FINAL del CSS
========================================================= */

@media (max-width: 768px) {

    /* =========================================
       PANEL CERRADO = HUD INFERIOR LIMPIO
    ========================================= */

    .nexus-panel,
    .nexus-panel.collapsed {
        position: fixed !important;

        top: auto !important;
        left: 12px !important;
        right: 12px !important;
        bottom: 14px !important;

        width: auto !important;
        max-width: none !important;

        height: 74px !important;
        max-height: 74px !important;

        padding: 10px 56px 10px 12px !important;

        border-radius: 28px !important;

        z-index: 1000000000 !important;

        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;

        overflow: visible !important;

        background:
            linear-gradient(
                180deg,
                rgba(15, 23, 42, .86),
                rgba(2, 6, 23, .96)
            ) !important;

        border: 1px solid rgba(125, 211, 252, .22) !important;

        backdrop-filter: blur(26px) saturate(160%) !important;
        -webkit-backdrop-filter: blur(26px) saturate(160%) !important;

        box-shadow:
            0 18px 60px rgba(0, 0, 0, .55),
            0 0 34px rgba(56, 189, 248, .18),
            inset 0 1px 0 rgba(255, 255, 255, .08) !important;

        box-sizing: border-box !important;

        transition:
            height .32s ease,
            max-height .32s ease,
            border-radius .32s ease,
            padding .32s ease,
            transform .32s ease !important;
    }

    /* Ocultamos elementos pesados en modo HUD */
    .nexus-panel .nexus-logo,
    .nexus-panel .nexus-beam,
    .nexus-panel .nexus-divider,
    .nexus-panel .nexus-stats,
    .nexus-panel .nexus-tools,
    .nexus-panel .nexus-auth,
    .nexus-panel.collapsed .nexus-logo,
    .nexus-panel.collapsed .nexus-beam,
    .nexus-panel.collapsed .nexus-divider,
    .nexus-panel.collapsed .nexus-stats,
    .nexus-panel.collapsed .nexus-tools,
    .nexus-panel.collapsed .nexus-auth {
        display: none !important;
    }

    /* =========================================
       NAV HORIZONTAL TIPO GAME HUD
    ========================================= */

    .nexus-panel .nexus-nav,
    .nexus-panel.collapsed .nexus-nav {
        flex: 1 1 auto !important;

        width: 100% !important;
        max-width: 100% !important;

        height: 54px !important;

        margin: 0 !important;
        padding: 0 4px !important;

        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;

        gap: 8px !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;

        box-sizing: border-box !important;
    }

    .nexus-panel .nexus-nav::-webkit-scrollbar {
        display: none !important;
    }

    .nexus-panel .nexus-item,
    .nexus-panel.collapsed .nexus-item {
        flex: 0 0 46px !important;

        width: 46px !important;
        height: 46px !important;

        min-width: 46px !important;
        max-width: 46px !important;

        padding: 0 !important;
        margin: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        gap: 0 !important;

        border-radius: 16px !important;

        background: rgba(255, 255, 255, .045) !important;
        border: 1px solid rgba(255, 255, 255, .07) !important;

        transform: none !important;

        box-shadow: none !important;

        transition:
            transform .22s ease,
            background .22s ease,
            border-color .22s ease,
            box-shadow .22s ease !important;
    }

    .nexus-panel .nexus-item:hover,
    .nexus-panel .nexus-item.active,
    .nexus-panel.collapsed .nexus-item:hover,
    .nexus-panel.collapsed .nexus-item.active {
        background: rgba(56, 189, 248, .16) !important;
        border-color: rgba(56, 189, 248, .34) !important;

        transform: translateY(-3px) scale(1.04) !important;

        box-shadow:
            0 0 20px rgba(56, 189, 248, .20) !important;
    }

    .nexus-panel .nexus-item span,
    .nexus-panel.collapsed .nexus-item span {
        width: auto !important;

        font-size: 22px !important;
        line-height: 1 !important;

        text-align: center !important;
    }

    .nexus-panel .nexus-item label,
    .nexus-panel.collapsed .nexus-item label {
        display: none !important;
    }

    /* =========================================
       BOTÓN ABRIR / CERRAR
    ========================================= */

    .nexus-panel .nexus-toggle,
    .nexus-panel.collapsed .nexus-toggle {
        position: absolute !important;

        top: 50% !important;
        right: 10px !important;
        left: auto !important;

        transform: translateY(-50%) !important;

        width: 42px !important;
        height: 42px !important;

        margin: 0 !important;
        padding: 0 !important;

        border-radius: 16px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        background:
            radial-gradient(
                circle at 35% 25%,
                rgba(255,255,255,.34),
                rgba(56,189,248,.28) 35%,
                rgba(15,23,42,.92) 100%
            ) !important;

        border: 1px solid rgba(125, 211, 252, .34) !important;

        color: #7dd3fc !important;

        box-shadow:
            0 0 22px rgba(56, 189, 248, .24),
            inset 0 1px 0 rgba(255,255,255,.16) !important;

        opacity: 1 !important;

        z-index: 1000000002 !important;
    }

    .nexus-panel .nexus-toggle:hover,
    .nexus-panel.collapsed .nexus-toggle:hover {
        transform: translateY(-50%) scale(1.05) !important;
        color: #ffffff !important;
    }

    /* =========================================
       PANEL ABIERTO = BOTTOM SHEET PREMIUM
    ========================================= */

    .nexus-panel.mobile-open,
    .nexus-panel.open,
    .nexus-panel.active {
        top: auto !important;
        left: 12px !important;
        right: 12px !important;
        bottom: 14px !important;

        width: auto !important;
        max-width: none !important;

        height: auto !important;
        max-height: calc(100dvh - 96px) !important;

        padding: 20px 18px 22px 18px !important;

        border-radius: 32px !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .nexus-panel.mobile-open .nexus-toggle,
    .nexus-panel.open .nexus-toggle,
    .nexus-panel.active .nexus-toggle {
        top: 18px !important;
        right: 18px !important;

        transform: none !important;
    }

    .nexus-panel.mobile-open .nexus-toggle:hover,
    .nexus-panel.open .nexus-toggle:hover,
    .nexus-panel.active .nexus-toggle:hover {
        transform: scale(1.05) !important;
    }

    .nexus-panel.mobile-open .nexus-logo,
    .nexus-panel.open .nexus-logo,
    .nexus-panel.active .nexus-logo {
        display: block !important;

        margin: 0 auto 16px auto !important;
        padding-right: 52px !important;

        text-align: center !important;
    }

    .nexus-panel.mobile-open .nexus-logo h3,
    .nexus-panel.open .nexus-logo h3,
    .nexus-panel.active .nexus-logo h3 {
        display: block !important;

        font-size: 15px !important;
        letter-spacing: 2px !important;
    }

    .nexus-panel.mobile-open .nexus-logo span,
    .nexus-panel.open .nexus-logo span,
    .nexus-panel.active .nexus-logo span {
        display: block !important;

        font-size: 10px !important;
        letter-spacing: 3px !important;
    }

    .nexus-panel.mobile-open .nexus-core,
    .nexus-panel.open .nexus-core,
    .nexus-panel.active .nexus-core {
        width: 58px !important;
        height: 58px !important;
        margin: 0 auto 12px auto !important;
    }

    .nexus-panel.mobile-open .nexus-nav,
    .nexus-panel.open .nexus-nav,
    .nexus-panel.active .nexus-nav {
        width: 100% !important;
        height: auto !important;

        margin: 12px 0 0 0 !important;
        padding: 0 !important;

        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

        gap: 10px !important;

        overflow: visible !important;
    }

    .nexus-panel.mobile-open .nexus-item,
    .nexus-panel.open .nexus-item,
    .nexus-panel.active .nexus-item {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;

        height: 54px !important;

        padding: 0 12px !important;

        justify-content: flex-start !important;
        gap: 10px !important;

        border-radius: 18px !important;
    }

    .nexus-panel.mobile-open .nexus-item span,
    .nexus-panel.open .nexus-item span,
    .nexus-panel.active .nexus-item span {
        font-size: 22px !important;
        width: 28px !important;
    }

    .nexus-panel.mobile-open .nexus-item label,
    .nexus-panel.open .nexus-item label,
    .nexus-panel.active .nexus-item label {
        display: inline-block !important;

        font-size: 11px !important;
        letter-spacing: .08em !important;

        white-space: nowrap !important;
    }

    .nexus-panel.mobile-open .nexus-divider,
    .nexus-panel.mobile-open .nexus-stats,
    .nexus-panel.mobile-open .nexus-tools,
    .nexus-panel.mobile-open .nexus-auth,
    .nexus-panel.open .nexus-divider,
    .nexus-panel.open .nexus-stats,
    .nexus-panel.open .nexus-tools,
    .nexus-panel.open .nexus-auth,
    .nexus-panel.active .nexus-divider,
    .nexus-panel.active .nexus-stats,
    .nexus-panel.active .nexus-tools,
    .nexus-panel.active .nexus-auth {
        display: block !important;
    }

    .nexus-panel.mobile-open .nexus-stats,
    .nexus-panel.open .nexus-stats,
    .nexus-panel.active .nexus-stats {
        margin-top: 16px !important;
    }

    .nexus-panel.mobile-open .nexus-tools,
    .nexus-panel.open .nexus-tools,
    .nexus-panel.active .nexus-tools {
        margin-top: 12px !important;
    }

    .nexus-panel.mobile-open .nexus-auth,
    .nexus-panel.open .nexus-auth,
    .nexus-panel.active .nexus-auth {
        margin-top: 16px !important;
    }
}

/* =========================================================
   MOBILE MUY PEQUEÑO
========================================================= */

@media (max-width: 420px) {

    .nexus-panel,
    .nexus-panel.collapsed {
        left: 8px !important;
        right: 8px !important;
        bottom: 10px !important;

        height: 68px !important;
        max-height: 68px !important;

        padding: 9px 52px 9px 10px !important;
    }

    .nexus-panel .nexus-item,
    .nexus-panel.collapsed .nexus-item {
        flex-basis: 42px !important;

        width: 42px !important;
        height: 42px !important;

        min-width: 42px !important;
        max-width: 42px !important;
    }

    .nexus-panel .nexus-item span,
    .nexus-panel.collapsed .nexus-item span {
        font-size: 20px !important;
    }

    .nexus-panel .nexus-toggle,
    .nexus-panel.collapsed .nexus-toggle {
        width: 40px !important;
        height: 40px !important;

        right: 8px !important;
    }

    .nexus-panel.mobile-open,
    .nexus-panel.open,
    .nexus-panel.active {
        left: 8px !important;
        right: 8px !important;
        bottom: 10px !important;

        max-height: calc(100dvh - 80px) !important;

        padding: 18px 14px 20px 14px !important;
    }

    .nexus-panel.mobile-open .nexus-nav,
    .nexus-panel.open .nexus-nav,
    .nexus-panel.active .nexus-nav {
        grid-template-columns: 1fr !important;
    }
}
/* ========================================= */
/* NEXUS PANEL COLLAPSE FIX */
/* Al colapsar, solo queda visible nexus-nav */
/* ========================================= */

.nexus-panel.collapsed .stat,
.nexus-panel.collapsed .nexusRank,
.nexus-panel.collapsed .nexus-tools,
.nexus-panel.collapsed .nexus-auth {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.nexus-panel.collapsed .nexus-nav {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}
/* =========================================
🚀 NEXUS SEARCH PRO
========================================= */

.nexus-search{

    position:fixed;

    left:45%;

    top:10px;

    transform:translateX(-50%);

    width:550px;

    height:58px;

    padding:0 22px;

    border-radius:20px;

    z-index:999999;

    border:
    1px solid rgba(255,255,255,.08);

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.08),
        rgba(255,255,255,.03)
    );

    backdrop-filter:blur(30px);

    -webkit-backdrop-filter:blur(30px);

    color:#ffffff;

    font-size:15px;

    font-weight:500;

    letter-spacing:.5px;

    outline:none;

    transition:
    all .35s ease;

    box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 10px 40px rgba(0,0,0,.25);
}

/* LAPTOPS NORMALES */
@media (max-width:1440px){

    .nexus-search{

        width:600px;

        height:54px;

        font-size:14px;

        top:10px;
    }
}

/* LAPTOPS PEQUEÑAS / TABLETS */
@media (max-width:1024px){

    .nexus-search{

        width:260px;

        height:52px;

        top:10px;
    }
}

/* =========================================================
   NEXUS SEARCH · MOBILE PREMIUM PERFECT
   Buscador + resultados optimizados para celular
========================================================= */

@media (max-width: 640px) {

    .nexus-search {
        position: fixed !important;

        top: 210px !important;
        left: 50% !important;
        right: auto !important;

        width: calc(100vw - 28px) !important;
        max-width: calc(100vw - 28px) !important;

        height: 52px !important;

        transform: translateX(-50%) !important;

        padding: 0 18px !important;

        border-radius: 22px !important;

        font-size: 13px !important;
        font-weight: 800 !important;
        line-height: 1 !important;

        color: #ffffff !important;

        background:
            radial-gradient(
                circle at top left,
                rgba(34, 211, 238, .14),
                transparent 42%
            ),
            linear-gradient(
                180deg,
                rgba(15, 23, 42, .88),
                rgba(2, 6, 23, .96)
            ) !important;

        border: 1px solid rgba(125, 211, 252, .24) !important;

        box-shadow:
            0 12px 34px rgba(0, 0, 0, .42),
            0 0 26px rgba(34, 211, 238, .12),
            inset 0 1px 0 rgba(255, 255, 255, .08) !important;

        backdrop-filter: blur(22px) saturate(150%) !important;
        -webkit-backdrop-filter: blur(22px) saturate(150%) !important;

        outline: none !important;

        z-index: 999 !important;

        box-sizing: border-box !important;
    }

    .nexus-search:focus {
        border-color: rgba(34, 211, 238, .52) !important;

        box-shadow:
            0 0 0 1px rgba(34, 211, 238, .22),
            0 0 28px rgba(34, 211, 238, .22),
            0 14px 36px rgba(0, 0, 0, .50),
            inset 0 1px 0 rgba(255, 255, 255, .10) !important;
    }

    .nexus-search::placeholder {
        color: rgba(226, 232, 240, .52) !important;

        font-size: 13px !important;
        font-weight: 700 !important;

        letter-spacing: .03em !important;
    }

    /* =====================================================
       RESULTADOS MOBILE
    ===================================================== */

    .nexus-search-results {
        position: fixed !important;

        top: 270px !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;

        width: calc(100vw - 28px) !important;
        max-width: calc(100vw - 28px) !important;

        max-height: calc(100dvh - 176px) !important;

        transform: translateX(-50%) !important;

        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;

        padding: 8px 4px 18px 4px !important;

        z-index: 1000000019 !important;

        box-sizing: border-box !important;

        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
    }

    .nexus-search-results::-webkit-scrollbar {
        width: 4px !important;
    }

    .nexus-search-results::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, .04) !important;
        border-radius: 999px !important;
    }

    .nexus-search-results::-webkit-scrollbar-thumb {
        background:
            linear-gradient(
                180deg,
                rgba(34, 211, 238, .72),
                rgba(139, 92, 246, .70)
            ) !important;

        border-radius: 999px !important;
    }

    .nexus-result-item {
        position: relative !important;

        left: auto !important;

        width: 100% !important;
        max-width: 100% !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: center !important;

        min-height: 72px !important;

        padding: 16px 18px !important;

        text-align: left !important;

        border-radius: 20px !important;

        color: #ffffff !important;

        background:
            radial-gradient(
                circle at top right,
                rgba(139, 92, 246, .16),
                transparent 36%
            ),
            linear-gradient(
                180deg,
                rgba(15, 23, 42, .92),
                rgba(2, 6, 23, .96)
            ) !important;

        border: 1px solid rgba(125, 211, 252, .18) !important;

        box-shadow:
            0 14px 34px rgba(0, 0, 0, .38),
            0 0 22px rgba(34, 211, 238, .08),
            inset 0 1px 0 rgba(255, 255, 255, .07) !important;

        backdrop-filter: blur(18px) saturate(145%) !important;
        -webkit-backdrop-filter: blur(18px) saturate(145%) !important;

        cursor: pointer !important;

        overflow: hidden !important;

        transition:
            transform .22s ease,
            border-color .22s ease,
            box-shadow .22s ease,
            background .22s ease !important;

        box-sizing: border-box !important;
    }

    .nexus-result-item::before {
        content: "✦";

        position: absolute;
        top: 16px;
        right: 16px;

        width: 28px;
        height: 28px;

        display: flex;
        align-items: center;
        justify-content: center;

        border-radius: 50%;

        color: #67e8f9;

        font-size: 13px;
        font-weight: 900;

        background: rgba(34, 211, 238, .10);
        border: 1px solid rgba(34, 211, 238, .20);

        box-shadow:
            0 0 18px rgba(34, 211, 238, .16);
    }

    .nexus-result-item:hover,
    .nexus-result-item:focus {
        transform: translateY(-2px) !important;

        border-color: rgba(34, 211, 238, .38) !important;

        box-shadow:
            0 18px 42px rgba(0, 0, 0, .48),
            0 0 28px rgba(34, 211, 238, .16),
            inset 0 1px 0 rgba(255, 255, 255, .10) !important;
    }

    .nexus-result-item:active {
        transform: scale(.985) !important;
    }
}

/* =========================================================
   NEXUS SEARCH RESULTS · HIDDEN STATE
========================================================= */

.nexus-search-results.nexus-results-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* MÓVILES */
@media (max-width:768px){

    .nexus-search{

        width:calc(100% - 30px);

        max-width:none;

        left:50%;

        top:10px;

        height:50px;

        font-size:14px;
    }
}
/* FOCUS */

.nexus-search:focus{

    border-color:

    rgba(0,217,255,.35);

    box-shadow:

    0 0 0 1px rgba(0,217,255,.15),

    0 0 40px rgba(0,217,255,.18);
}

/* PLACEHOLDER */

.nexus-search::placeholder{

    color:
    rgba(255,255,255,.45);

    letter-spacing:1px;
}

.nexus-search::placeholder{
    color:rgba(255,255,255,.45);
}

.nexus-search-results{

    position:fixed;

    top:95px;

    left:50%;

    width:750px;

    transform:translateX(-50%);

    max-height:70vh;

    overflow-y:auto;

    overflow-x:hidden;

    display:flex;

    flex-direction:column;

    gap:12px;

    z-index:999999;

    padding-right:8px;
}

.nexus-result-item{
    position:relative;
    left:0;
    width:100%;

    display:block;
    text-align:left;

    border:none;
    border-radius:16px;
    padding:18px 22px;

    background:rgba(20,20,60,.88);
    color:#fff;
    cursor:pointer;
}



.nexus-result-item:hover{

    transform:
    translateY(-2px);

    border-color:
    rgba(125,211,252,.25);
    
    background-color:#121b87d6;

    box-shadow:

    0 0 25px rgba(125,211,252,.12);
}

.nexus-result-item span{
    display:block;
    font-size:12px;
    font-weight:800;
    letter-spacing:1px;
}

.nexus-result-item small{
    display:block;
    margin-top:4px;
    color:#ffffff;
    font-size:11px;
}

.nexus-search-results::-webkit-scrollbar{

    width:10px;
}

.nexus-search-results::-webkit-scrollbar-track{

    background:
    rgba(255,255,255,.03);

    border-radius:20px;
}

.nexus-search-results::-webkit-scrollbar-thumb{

    background:
    linear-gradient(
        180deg,
        #00D9FF,
        #2563EB
    );

    border-radius:20px;
}

.nexus-search-results::-webkit-scrollbar-thumb:hover{

    background:
    linear-gradient(
        180deg,
        #38BDF8,
        #3B82F6
    );
}


/* =========================================
   AULÓPOLIS NEXUS USER MENU
========================================= */

.nexus-user-menu{
    position:fixed;
    top:24px;
    right:28px;
    z-index:99999999;
    font-family:inherit;
}

.nexus-user-trigger{
    display:flex;
    align-items:center;
    gap:12px;

    min-width:220px;
    height:58px;

    padding:8px 14px 8px 8px;

    border-radius:999px;
    border:1px solid rgba(125,211,252,.22);

    background:
        linear-gradient(
            135deg,
            rgba(15,23,42,.84),
            rgba(8,12,28,.72)
        );

    backdrop-filter:blur(24px);
    -webkit-backdrop-filter:blur(24px);

    color:#fff;
    cursor:pointer;

    box-shadow:
        0 0 30px rgba(0,219,255,.12),
        inset 0 0 20px rgba(255,255,255,.035);

    transition:
        transform .28s ease,
        border-color .28s ease,
        box-shadow .28s ease;
}

.nexus-user-trigger:hover{
    transform:translateY(-2px);

    border-color:rgba(103,232,249,.45);

    box-shadow:
        0 0 40px rgba(0,219,255,.22),
        0 0 90px rgba(124,58,237,.14),
        inset 0 0 22px rgba(255,255,255,.05);
}

.nexus-user-avatar{
    width:42px;
    height:42px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:
        radial-gradient(
            circle at 35% 25%,
            #67e8f9,
            #2563eb 52%,
            #111827 100%
        );

    color:#fff;

    font-size:15px;
    font-weight:900;
    letter-spacing:.5px;

    box-shadow:
        0 0 18px rgba(103,232,249,.55),
        inset 0 0 18px rgba(255,255,255,.14);
}

.nexus-user-info{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    line-height:1.1;
    flex:1;
    overflow:hidden;
}

.nexus-user-info span{
    max-width:120px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;

    font-size:13px;
    font-weight:800;
    letter-spacing:.4px;
    color:#ffffff;
}

.nexus-user-info small{
    margin-top:4px;

    font-size:9px;
    font-weight:900;
    letter-spacing:2px;

    color:#67e8f9;
    opacity:.85;
}

.nexus-user-chevron{
    color:#67e8f9;
    font-size:13px;
    transition:transform .25s ease;
}

.nexus-user-menu.open .nexus-user-chevron{
    transform:rotate(180deg);
}

/* DROPDOWN */

.nexus-user-dropdown{
    position:absolute;
    top:72px;
    right:0;

    width:280px;

    padding:12px;

    border-radius:24px;
    border:1px solid rgba(255,255,255,.12);

    background:
        linear-gradient(
            180deg,
            rgba(15,23,42,.96),
            rgba(2,6,23,.94)
        );

    backdrop-filter:blur(28px);
    -webkit-backdrop-filter:blur(28px);

    box-shadow:
        0 24px 80px rgba(0,0,0,.55),
        0 0 40px rgba(0,219,255,.12),
        inset 0 0 24px rgba(255,255,255,.035);

    opacity:0;
    visibility:hidden;
    transform:translateY(-8px) scale(.97);
    pointer-events:none;

    transition:
        opacity .25s ease,
        transform .25s ease,
        visibility .25s ease;
}

.nexus-user-menu.open .nexus-user-dropdown{
    opacity:1;
    visibility:visible;
    transform:translateY(0) scale(1);
    pointer-events:auto;
}

.nexus-dropdown-header{
    padding:14px 14px 16px;
    margin-bottom:8px;

    border-radius:18px;

    background:
        radial-gradient(
            circle at top left,
            rgba(103,232,249,.16),
            rgba(255,255,255,.035)
        );

    border:1px solid rgba(255,255,255,.08);
}

.nexus-dropdown-header strong{
    display:block;

    color:#fff;
    font-size:14px;
    font-weight:900;
    letter-spacing:.5px;
}

.nexus-dropdown-header span{
    display:block;
    margin-top:5px;

    color:#94a3b8;
    font-size:11px;

    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.nexus-dropdown-item{
    width:100%;

    display:flex;
    align-items:center;
    gap:12px;

    padding:13px 14px;
    margin-top:6px;

    border:none;
    border-radius:16px;

    background:transparent;

    color:#e5e7eb;
    text-decoration:none;

    font-size:13px;
    font-weight:800;
    letter-spacing:.3px;

    cursor:pointer;

    transition:
        background .25s ease,
        color .25s ease,
        transform .25s ease;
}

.nexus-dropdown-item:hover{
    background:rgba(103,232,249,.10);
    color:#ffffff;
    transform:translateX(3px);
    text-decoration:none;
}

.nexus-dropdown-item span{
    width:22px;
    display:inline-flex;
    justify-content:center;
}

.nexus-dropdown-divider{
    height:1px;
    margin:12px 6px;

    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.16),
        transparent
    );
}

.nexus-logout-form{
    margin:0;
}

.nexus-logout-btn{
    color:#fecaca;
}

.nexus-logout-btn:hover{
    background:rgba(239,68,68,.12);
    color:#fff;
}

/* MOBILE */

@media(max-width:768px){

    .nexus-user-menu{
        top:14px;
        right:14px;
    }

    .nexus-user-trigger{
        min-width:auto;
        width:54px;
        height:54px;
        padding:6px;
    }

    .nexus-user-info,
    .nexus-user-chevron{
        display:none;
    }

    .nexus-user-avatar{
        width:42px;
        height:42px;
    }

    .nexus-user-dropdown{
        width:260px;
        right:0;
        top:64px;
    }
}


    .aulo-routes-section{
        margin-top:32px;
    }

    .aulo-section-head{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:20px;
        margin-bottom:18px;
    }

    .aulo-section-title{
        color:#fff;
        font-size:24px;
        font-weight:900;
        margin:0;
    }

    .aulo-section-hint{
        color:#94a3b8;
        font-size:14px;
        margin:6px 0 0;
    }

    .aulo-route-grid{
        display:grid;
        grid-template-columns:repeat(4, minmax(0, 1fr));
        gap:18px;
    }

    .aulo-route-card{
        position:relative;
        overflow:hidden;
        min-height:260px;
        padding:24px;
        border-radius:26px;
        background:
            radial-gradient(circle at top left, rgba(34,211,238,.16), transparent 35%),
            linear-gradient(180deg, rgba(15,23,42,.94), rgba(2,6,23,.92));
        border:1px solid rgba(148,163,184,.16);
        box-shadow:0 18px 50px rgba(0,0,0,.28);
        transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease;
    }

    .aulo-route-card:hover{
        transform:translateY(-4px);
        border-color:rgba(34,211,238,.35);
        box-shadow:0 24px 70px rgba(0,0,0,.38), 0 0 35px rgba(34,211,238,.12);
    }

    .aulo-route-card.locked{
        opacity:.72;
    }

    .aulo-route-card.locked::after{
        content:"";
        position:absolute;
        inset:0;
        background:linear-gradient(180deg, transparent, rgba(0,0,0,.18));
        pointer-events:none;
    }

    .aulo-route-top{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        position:relative;
        z-index:2;
    }

    .aulo-route-icon{
        width:56px;
        height:56px;
        display:flex;
        align-items:center;
        justify-content:center;
        border-radius:18px;
        background:rgba(255,255,255,.06);
        border:1px solid rgba(255,255,255,.08);
        font-size:28px;
        box-shadow:inset 0 0 18px rgba(255,255,255,.04);
    }

    .aulo-route-badge{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        padding:7px 11px;
        border-radius:999px;
        font-size:10px;
        font-weight:900;
        letter-spacing:.12em;
        text-transform:uppercase;
    }

    .aulo-route-badge.active{
        color:#67e8f9;
        background:rgba(34,211,238,.10);
        border:1px solid rgba(34,211,238,.25);
    }

    .aulo-route-badge.premium{
        color:#fde68a;
        background:rgba(250,204,21,.10);
        border:1px solid rgba(250,204,21,.25);
    }

    .aulo-route-title{
        position:relative;
        z-index:2;
        margin-top:22px;
        color:#fff;
        font-size:20px;
        font-weight:900;
        line-height:1.15;
    }

    .aulo-route-desc{
        position:relative;
        z-index:2;
        margin-top:10px;
        color:#94a3b8;
        font-size:14px;
        line-height:1.55;
    }

    .aulo-route-meta{
        position:relative;
        z-index:2;
        margin-top:18px;
        display:flex;
        flex-direction:column;
        gap:7px;
        color:#cbd5e1;
        font-size:13px;
    }

    .aulo-route-action{
        position:relative;
        z-index:2;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        margin-top:22px;
        width:100%;
        padding:13px 16px;
        border-radius:16px;
        background:linear-gradient(135deg,#3b22ff,#19d9ff);
        color:#fff !important;
        font-weight:900;
        text-decoration:none !important;
        box-shadow:0 0 24px rgba(34,211,238,.28);
    }

    .aulo-route-action.buy{
        background:linear-gradient(135deg,#f59e0b,#fde047);
        color:#111827 !important;
        box-shadow:0 0 24px rgba(250,204,21,.26);
    }

    .aulo-lock{
        position:absolute;
        right:22px;
        bottom:22px;
        z-index:1;
        font-size:70px;
        opacity:.06;
        transform:rotate(-8deg);
    }

    @media(max-width:1200px){
        .aulo-route-grid{
            grid-template-columns:repeat(2, minmax(0, 1fr));
        }
    }

    @media(max-width:768px){
        .aulo-route-grid{
            grid-template-columns:1fr;
        }

        .aulo-section-head{
            flex-direction:column;
            align-items:flex-start;
        }
    }
    
/* =========================================================
   AULÓPOLIS NEXUS MAP — RESPONSIVE PREMIUM
   Solo modifica el mapa de planetas del HERO
========================================================= */

.aulopolis-nexus-map {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    z-index: 30;
    pointer-events: none;

    overflow: visible;
}

/* OCULTAR NEXUS MAP EN MÓVIL */
@media (max-width: 767px) {
    .aulopolis-nexus-map {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}
/* OCULTAR NEXUS MAP EN MÓVIL Y TABLET */
@media (max-width: 991px) {
    .aulopolis-nexus-map {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}
/* OCULTAR ELEMENTOS DE MARCA EN MÓVIL */
@media (max-width: 767px) {
    .hero-brand-name,
    .hero-brand-subtitle,
    .hero-brand-description {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}
/* OCULTAR ELEMENTOS DE MARCA EN MÓVIL Y TABLET */
@media (max-width: 991px) {
    .hero-brand-name,
    .hero-brand-subtitle,
    .hero-brand-description {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}
/* =========================================================
   NODE BASE
========================================================= */

.aulopolis-nexus-map .nexus-node {

    position: absolute;

    width: clamp(58px, 7vw, 112px);
    height: clamp(58px, 7vw, 112px);

    display: flex;
    align-items: center;
    justify-content: center;

    text-decoration: none !important;
    pointer-events: auto;

    transform: translate(-50%, -50%);

    filter:
        drop-shadow(0 0 14px var(--nexus-glow))
        drop-shadow(0 0 38px rgba(0,0,0,.50));

    animation:
        nexusFloat 6.8s ease-in-out infinite,
        nexusDrift 9s ease-in-out infinite;

    will-change:
        top,
        left,
        transform,
        filter;

    transition:
        top 1.4s cubic-bezier(.2,.8,.2,1),
        left 1.4s cubic-bezier(.2,.8,.2,1),
        transform .35s ease,
        filter .35s ease;
}

.aulopolis-nexus-map .nexus-node:hover {
    animation-play-state: paused;

    filter:
        drop-shadow(0 0 24px var(--nexus-glow))
        drop-shadow(0 0 62px var(--nexus-glow));
}

/* =========================================================
   ORB
========================================================= */

.aulopolis-nexus-map .nexus-orb {
    position: relative;
    z-index: 4;

    width: clamp(46px, 5.2vw, 78px);
    height: clamp(46px, 5.2vw, 78px);

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    border-radius: 999px;

    background:
        radial-gradient(circle at 30% 22%, rgba(255,255,255,.72), transparent 17%),
        radial-gradient(circle at 50% 58%, var(--nexus-mid), var(--nexus-dark) 70%);

    border: 1px solid rgba(255,255,255,.30);

    box-shadow:
        inset 0 0 16px rgba(255,255,255,.16),
        inset 0 -12px 22px rgba(0,0,0,.34),
        0 0 18px var(--nexus-glow),
        0 0 42px rgba(0,0,0,.55);

    overflow: hidden;

    animation: nexusOrbBreath 4.8s ease-in-out infinite;

    transition:
        transform .35s cubic-bezier(.16, 1, .3, 1),
        box-shadow .35s ease;
}

.aulopolis-nexus-map .nexus-node:hover .nexus-orb {
    transform: scale(1.12);

    box-shadow:
        inset 0 0 22px rgba(255,255,255,.22),
        inset 0 -12px 26px rgba(0,0,0,.38),
        0 0 28px var(--nexus-glow),
        0 0 74px var(--nexus-glow);
}

/* Brillo diagonal */
.aulopolis-nexus-map .nexus-orb::before {
    content: "";
    position: absolute;
    inset: -45%;

    background:
        linear-gradient(
            120deg,
            transparent 38%,
            rgba(255,255,255,.38) 48%,
            transparent 60%
        );

    transform: rotate(18deg) translateX(-55%);
    animation: nexusShine 5.8s ease-in-out infinite;
}

/* =========================================================
   TEXT
========================================================= */

.aulopolis-nexus-map .nexus-icon {
    position: relative;
    z-index: 4;

    color: #ffffff;

    font-size: clamp(10px, 1.5vw, 18px);
    font-weight: 900;
    line-height: 1;

    text-shadow:
        0 0 10px rgba(255,255,255,.85),
        0 0 18px var(--nexus-glow);
}

.aulopolis-nexus-map .nexus-label {
    position: relative;
    z-index: 4;

    margin-top: clamp(3px, .5vw, 7px);

    color: #ffffff;

    font-size: clamp(6px, .9vw, 11px);
    font-weight: 900;
    letter-spacing: clamp(.6px, .12vw, 1.4px);
    line-height: 1;

    text-transform: uppercase;

    text-shadow:
        0 0 8px rgba(255,255,255,.88),
        0 0 16px var(--nexus-glow);
}

/* =========================================================
   RINGS
========================================================= */

.aulopolis-nexus-map .nexus-ring {
    position: absolute;
    inset: 8px;

    z-index: 2;

    border-radius: 999px;

    border: 1px solid var(--nexus-glow);

    box-shadow:
        0 0 14px var(--nexus-glow),
        inset 0 0 18px rgba(255,255,255,.08);

    opacity: .78;

    animation: nexusRotate 11s linear infinite;
}

.aulopolis-nexus-map .nexus-orbit {
    position: absolute;
    z-index: 1;

    width: clamp(62px, 8vw, 112px);
    height: clamp(24px, 3vw, 44px);

    border-radius: 999px;

    border: 1px solid var(--nexus-glow);

    box-shadow:
        0 0 14px var(--nexus-glow),
        inset 0 0 10px rgba(255,255,255,.08);

    transform: rotate(-18deg);

    opacity: .54;

    animation: nexusOrbitFloat 6s ease-in-out infinite;
}

.aulopolis-nexus-map .nexus-pulse {
    position: absolute;
    inset: -6px;

    z-index: 0;

    border-radius: 999px;

    background:
        radial-gradient(circle, var(--nexus-glow), transparent 66%);

    opacity: .20;

    animation: nexusPulse 3.2s ease-in-out infinite;
}

/* =========================================================
   SOMBRA / PARTÍCULAS
========================================================= */

.aulopolis-nexus-map .nexus-node::after {
    content: "";
    position: absolute;

    left: 50%;
    bottom: -18px;

    width: clamp(34px, 4vw, 58px);
    height: clamp(9px, 1vw, 14px);

    transform: translateX(-50%);

    border-radius: 999px;

    background:
        radial-gradient(
            ellipse,
            var(--nexus-glow) 0%,
            rgba(0,0,0,.18) 42%,
            transparent 72%
        );

    opacity: .24;
    filter: blur(8px);

    animation: nexusShadowFloat 6.5s ease-in-out infinite;
    pointer-events: none;
}

.aulopolis-nexus-map .nexus-node::before {
    content: "";
    position: absolute;

    width: 4px;
    height: 4px;

    top: 12px;
    right: 14px;

    border-radius: 999px;

    background: rgba(255,255,255,.92);

    box-shadow:
        18px 24px 0 rgba(255,255,255,.42),
        -22px 34px 0 var(--nexus-glow),
        -14px -10px 0 rgba(255,255,255,.36);

    filter: drop-shadow(0 0 8px var(--nexus-glow));

    opacity: .62;

    animation: nexusParticles 5.4s ease-in-out infinite;
    pointer-events: none;
}

/* =========================================================
   COLORS + DESKTOP POSITIONS
========================================================= */

.aulopolis-nexus-map .nexus-ai {
    top: 21%;
    left: 57%;

    --nexus-mid: rgba(124, 58, 237, .96);
    --nexus-dark: rgba(50, 12, 95, .98);
    --nexus-glow: rgba(168, 85, 247, .92);

    animation-delay: 0s, .4s;
}

.aulopolis-nexus-map .nexus-code {
    top: 18%;
    left: 82%;

    --nexus-mid: rgba(0, 130, 255, .95);
    --nexus-dark: rgba(5, 30, 80, .98);
    --nexus-glow: rgba(59, 130, 246, .95);

    animation-delay: .8s, 1.2s;
}

.aulopolis-nexus-map .nexus-cyber {
    top: 40%;
    left: 46%;

    --nexus-mid: rgba(0, 180, 150, .94);
    --nexus-dark: rgba(4, 70, 70, .98);
    --nexus-glow: rgba(45, 212, 191, .94);

    animation-delay: 1.4s, .7s;
}

.aulopolis-nexus-map .nexus-data {
    top: 38%;
    left: 74%;

    --nexus-mid: rgba(0, 200, 255, .94);
    --nexus-dark: rgba(4, 55, 95, .98);
    --nexus-glow: rgba(34, 211, 238, .96);

    animation-delay: .5s, 1.8s;
}

.aulopolis-nexus-map .nexus-game {
    top: 42%;
    left: 91%;

    --nexus-mid: rgba(90, 210, 70, .92);
    --nexus-dark: rgba(35, 75, 25, .98);
    --nexus-glow: rgba(163, 230, 53, .92);

    animation-delay: 1.1s, 2.1s;
}

.aulopolis-nexus-map .nexus-sound {
    top: 61%;
    left: 54%;

    --nexus-mid: rgba(236, 72, 153, .94);
    --nexus-dark: rgba(90, 20, 65, .98);
    --nexus-glow: rgba(244, 114, 182, .96);

    animation-delay: 1.7s, .9s;
}

.aulopolis-nexus-map .nexus-creator {
    top: 58%;
    left: 78%;

    --nexus-mid: rgba(168, 85, 247, .94);
    --nexus-dark: rgba(70, 20, 100, .98);
    --nexus-glow: rgba(192, 132, 252, .96);

    animation-delay: .3s, 1.5s;
}

.aulopolis-nexus-map .nexus-3d {
    top: 72%;
    left: 86%;

    --nexus-mid: rgba(139, 92, 246, .96);
    --nexus-dark: rgba(50, 30, 110, .98);
    --nexus-glow: rgba(167, 139, 250, .96);

    animation-delay: 1.9s, 2.4s;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1199px) {
    .aulopolis-nexus-map .nexus-ai {
        top: 22%;
        left: 58%;
    }

    .aulopolis-nexus-map .nexus-code {
        top: 18%;
        left: 80%;
    }

    .aulopolis-nexus-map .nexus-cyber {
        top: 42%;
        left: 44%;
    }

    .aulopolis-nexus-map .nexus-data {
        top: 39%;
        left: 72%;
    }

    .aulopolis-nexus-map .nexus-game {
        top: 44%;
        left: 88%;
    }

    .aulopolis-nexus-map .nexus-sound {
        top: 62%;
        left: 52%;
    }

    .aulopolis-nexus-map .nexus-creator {
        top: 59%;
        left: 75%;
    }

    .aulopolis-nexus-map .nexus-3d {
        top: 74%;
        left: 84%;
    }
}

/* =========================================================
   MOBILE
   Ajustado para que NO se salgan los planetas
========================================================= */

@media (max-width: 767px) {
    .aulopolis-nexus-map {
        z-index: 32;
    }

    .aulopolis-nexus-map .nexus-node {
        width: 58px;
        height: 58px;
    }

    .aulopolis-nexus-map .nexus-orb {
        width: 46px;
        height: 46px;
    }

    .aulopolis-nexus-map .nexus-orbit {
        width: 60px;
        height: 22px;
        opacity: .46;
    }

    .aulopolis-nexus-map .nexus-ring {
        inset: 6px;
        opacity: .58;
    }

    .aulopolis-nexus-map .nexus-icon {
        font-size: 10px;
    }

    .aulopolis-nexus-map .nexus-label {
        font-size: 6px;
        letter-spacing: .6px;
        margin-top: 4px;
    }

    .aulopolis-nexus-map .nexus-node::before {
        display: none;
    }

    .aulopolis-nexus-map .nexus-node::after {
        bottom: -11px;
        width: 30px;
        height: 8px;
        opacity: .18;
    }

    .aulopolis-nexus-map .nexus-ai {
        top: 27%;
        left: 63%;
    }

    .aulopolis-nexus-map .nexus-code {
        top: 14%;
        left: 82%;
    }

    .aulopolis-nexus-map .nexus-cyber {
        top: 42%;
        left: 48%;
    }

    .aulopolis-nexus-map .nexus-data {
        top: 39%;
        left: 74%;
    }

    .aulopolis-nexus-map .nexus-game {
        top: 46%;
        left: 88%;
    }

    .aulopolis-nexus-map .nexus-sound {
        top: 66%;
        left: 54%;
    }

    .aulopolis-nexus-map .nexus-creator {
        top: 62%;
        left: 77%;
    }

    .aulopolis-nexus-map .nexus-3d {
        top: 80%;
        left: 83%;
    }
}

/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {
    .aulopolis-nexus-map .nexus-node {
        width: 52px;
        height: 52px;
    }

    .aulopolis-nexus-map .nexus-orb {
        width: 42px;
        height: 42px;
    }

    .aulopolis-nexus-map .nexus-label {
        font-size: 5.5px;
    }

    .aulopolis-nexus-map .nexus-ai {
        top: 28%;
        left: 62%;
    }

    .aulopolis-nexus-map .nexus-code {
        top: 15%;
        left: 80%;
    }

    .aulopolis-nexus-map .nexus-cyber {
        top: 43%;
        left: 48%;
    }

    .aulopolis-nexus-map .nexus-data {
        top: 40%;
        left: 73%;
    }

    .aulopolis-nexus-map .nexus-game {
        top: 47%;
        left: 86%;
    }

    .aulopolis-nexus-map .nexus-sound {
        top: 67%;
        left: 55%;
    }

    .aulopolis-nexus-map .nexus-creator {
        top: 63%;
        left: 76%;
    }

    .aulopolis-nexus-map .nexus-3d {
        top: 80%;
        left: 82%;
    }
}

/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes nexusRotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes nexusPulse {
    0%,
    100% {
        transform: scale(.96);
        opacity: .18;
    }

    50% {
        transform: scale(1.12);
        opacity: .34;
    }
}

@keyframes nexusOrbitFloat {
    0%,
    100% {
        transform: rotate(-18deg) translateY(0);
    }

    50% {
        transform: rotate(-18deg) translateY(-4px);
    }
}

@keyframes nexusShine {
    0%,
    62% {
        transform: rotate(18deg) translateX(-55%);
        opacity: 0;
    }

    72% {
        opacity: .9;
    }

    86% {
        transform: rotate(18deg) translateX(42%);
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}

@keyframes nexusFloat {
    0%,
    100% {
        transform: translate(-50%, -50%) translateY(0);
    }

    50% {
        transform: translate(-50%, -50%) translateY(-10px);
    }
}

@keyframes nexusDrift {
    0%,
    100% {
        margin-left: 0;
    }

    50% {
        margin-left: 5px;
    }
}

@keyframes nexusOrbBreath {
    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.035);
    }
}

@keyframes nexusShadowFloat {
    0%,
    100% {
        transform: translateX(-50%) scale(1);
        opacity: .24;
    }

    50% {
        transform: translateX(-50%) scale(.72);
        opacity: .12;
    }
}

@keyframes nexusParticles {
    0%,
    100% {
        transform: translateY(0) rotate(0deg);
        opacity: .45;
    }

    50% {
        transform: translateY(-8px) rotate(12deg);
        opacity: .9;
    }
}
/* =========================================
   AULÓPOLIS HOME EXPERIENCE — ENCAPSULADO
========================================= */

.aulopolis-home-experience{
    position:relative;
    background:
        radial-gradient(circle at 50% 0%, rgba(124,58,237,.18), transparent 35%),
        radial-gradient(circle at 85% 45%, rgba(34,211,238,.12), transparent 32%),
        #02030a;
    overflow:hidden;
    isolation:isolate;
}

.aulopolis-home-experience *,
.aulopolis-home-experience *::before,
.aulopolis-home-experience *::after{
    box-sizing:border-box;
}


/* =========================================
   AULÓPOLIS FLOW — CÓMO FUNCIONA
========================================= */

.aulopolis-home-experience .aulopolis-flow-section{
    position:relative;
    padding:110px 20px 90px;
    z-index:5;
}

.aulopolis-home-experience .aulopolis-flow-section::before{
    content:"";
    position:absolute;
    inset:30px 0 auto 50%;
    width:680px;
    height:680px;
    transform:translateX(-50%);
    background:
        radial-gradient(circle, rgba(124,58,237,.24), transparent 62%),
        radial-gradient(circle at 30% 30%, rgba(34,211,238,.18), transparent 45%);
    filter:blur(30px);
    pointer-events:none;
    z-index:-1;
}

.aulopolis-home-experience .flow-header{
    text-align:center;
    margin-bottom:55px;
}

.aulopolis-home-experience .flow-header h2{
    font-size:clamp(2rem, 4vw, 4.2rem);
    font-weight:900;
    letter-spacing:-.06em;
    line-height:.95;
    margin:0;
    color:#ffffff;
    text-shadow:
        0 0 20px rgba(124,58,237,.45),
        0 0 60px rgba(34,211,238,.22);
}

.aulopolis-home-experience .flow-header span{
    display:block;
    margin-top:18px;
    font-size:clamp(.95rem, 1.3vw, 1.15rem);
    color:rgba(226,232,240,.72);
    letter-spacing:.02em;
}

.aulopolis-home-experience .flow-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:26px;
}

.aulopolis-home-experience .flow-card{
    position:relative;
    min-height:310px;
    padding:34px 28px 32px;
    border-radius:32px;
    overflow:hidden;
    background:
        radial-gradient(circle at 30% 10%, rgba(34,211,238,.18), transparent 42%),
        linear-gradient(145deg, rgba(15,23,42,.86), rgba(2,6,23,.96));
    border:1px solid rgba(148,163,184,.16);
    box-shadow:
        0 26px 80px rgba(0,0,0,.42),
        inset 0 1px 0 rgba(255,255,255,.08);
    transition:
        transform .45s cubic-bezier(.16,1,.3,1),
        border-color .45s ease,
        box-shadow .45s ease;
}

.aulopolis-home-experience .flow-card::before{
    content:"";
    position:absolute;
    inset:-1px;
    border-radius:inherit;
    padding:1px;
    background:linear-gradient(
        135deg,
        rgba(34,211,238,.55),
        rgba(124,58,237,.25),
        rgba(250,204,21,.28)
    );
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;
    mask-composite:exclude;
    opacity:.45;
    pointer-events:none;
}

.aulopolis-home-experience .flow-card::after{
    content:"";
    position:absolute;
    right:-80px;
    bottom:-100px;
    width:250px;
    height:250px;
    background:radial-gradient(circle, rgba(124,58,237,.32), transparent 65%);
    filter:blur(10px);
    pointer-events:none;
}

.aulopolis-home-experience .flow-card:hover{
    transform:translateY(-12px) scale(1.015);
    border-color:rgba(34,211,238,.32);
    box-shadow:
        0 34px 100px rgba(0,0,0,.55),
        0 0 50px rgba(34,211,238,.14),
        inset 0 1px 0 rgba(255,255,255,.12);
}

.aulopolis-home-experience .flow-number{
    position:absolute;
    top:24px;
    right:26px;
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    font-size:.95rem;
    font-weight:900;
    color:#020617;
    background:linear-gradient(135deg, #22d3ee, #a78bfa, #facc15);
    box-shadow:
        0 0 25px rgba(34,211,238,.35),
        inset 0 1px 0 rgba(255,255,255,.45);
}

/* =========================================
   FLOW ORB — REACTOR HOLOGRÁFICO PREMIUM
========================================= */

.aulopolis-home-experience .flow-orb{
    position:relative;
    width:150px;
    height:150px;
    margin:0;
    border-radius:50%;
    isolation:isolate;

    background:
        /* núcleo energético */
        radial-gradient(circle at 50% 48%,
            rgba(255,255,255,1) 0%,
            rgba(103,232,249,1) 6%,
            rgba(34,211,238,.95) 13%,
            rgba(59,130,246,.72) 24%,
            rgba(124,58,237,.38) 34%,
            transparent 42%
        ),

        /* esfera azul interior */
        radial-gradient(circle at 50% 50%,
            rgba(34,211,238,.28) 0%,
            rgba(59,130,246,.18) 28%,
            transparent 46%
        ),

        /* anillo violeta medio */
        radial-gradient(circle at 50% 50%,
            transparent 43%,
            rgba(168,85,247,.75) 45%,
            rgba(34,211,238,.25) 47%,
            transparent 50%
        ),

        /* anillo exterior */
        radial-gradient(circle at 50% 50%,
            transparent 62%,
            rgba(34,211,238,.58) 64%,
            rgba(59,130,246,.24) 67%,
            transparent 70%
        ),

        /* fondo oscuro */
        radial-gradient(circle at 50% 50%,
            rgba(2,8,23,.94) 0%,
            rgba(2,6,23,.98) 100%
        );

    box-shadow:
        0 0 18px rgba(34,211,238,.65),
        0 0 46px rgba(59,130,246,.42),
        0 0 90px rgba(124,58,237,.32),
        inset 0 0 28px rgba(34,211,238,.22),
        inset 0 0 60px rgba(124,58,237,.18);

    animation:aulopolisOrbFloat 5.5s ease-in-out infinite;
}

.aulopolis-home-experience .flow-orb::before{
    content:"";
    position:absolute;
    inset:-18px;
    border-radius:50%;
    z-index:2;

    background:
        /* líneas orbitales curvas */
        conic-gradient(
            from 12deg,
            transparent 0deg,
            rgba(34,211,238,.85) 18deg,
            transparent 34deg,
            transparent 74deg,
            rgba(168,85,247,.8) 92deg,
            transparent 112deg,
            transparent 168deg,
            rgba(34,211,238,.7) 190deg,
            transparent 212deg,
            transparent 260deg,
            rgba(168,85,247,.65) 282deg,
            transparent 310deg,
            transparent 360deg
        );

    -webkit-mask:
        radial-gradient(circle,
            transparent 0 48%,
            #000 49% 52%,
            transparent 53% 59%,
            #000 60% 62%,
            transparent 63% 100%
        );

    mask:
        radial-gradient(circle,
            transparent 0 48%,
            #000 49% 52%,
            transparent 53% 59%,
            #000 60% 62%,
            transparent 63% 100%
        );

    filter:drop-shadow(0 0 12px rgba(34,211,238,.65));
    animation:aulopolisOrbSpin 12s linear infinite;
}

.aulopolis-home-experience .flow-orb::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:3px;
    width:112px;
    height:34px;
    transform:translateX(-50%) rotateX(62deg);
    border-radius:50%;
    z-index:1;

    background:
        radial-gradient(ellipse at center,
            rgba(255,255,255,.9) 0%,
            rgba(34,211,238,.8) 12%,
            rgba(168,85,247,.65) 34%,
            rgba(124,58,237,.32) 55%,
            transparent 72%
        );

    border:1px solid rgba(34,211,238,.38);

    box-shadow:
        0 0 18px rgba(34,211,238,.55),
        0 0 36px rgba(168,85,247,.45),
        0 0 70px rgba(124,58,237,.25),
        inset 0 0 18px rgba(255,255,255,.18);
}

/* puntos brillantes alrededor */
.aulopolis-home-experience .flow-orb .orb-particles{
    display:none;
}

/* líneas internas simuladas */
.aulopolis-home-experience .flow-orb{
    overflow:visible;
}

.aulopolis-home-experience .flow-orb{
    --orb-lines:
        radial-gradient(circle at 28% 34%, rgba(255,255,255,.95) 0 2px, transparent 3px),
        radial-gradient(circle at 72% 30%, rgba(34,211,238,.9) 0 2px, transparent 3px),
        radial-gradient(circle at 78% 68%, rgba(168,85,247,.9) 0 2px, transparent 3px),
        radial-gradient(circle at 24% 70%, rgba(255,255,255,.85) 0 1.5px, transparent 3px),
        linear-gradient(38deg, transparent 45%, rgba(34,211,238,.28) 46%, transparent 48%),
        linear-gradient(-42deg, transparent 48%, rgba(168,85,247,.24) 49%, transparent 51%);
}

.aulopolis-home-experience .flow-orb .orb-hud{
    position:absolute;
    inset:18px;
    border-radius:50%;
    z-index:3;
    pointer-events:none;

    background:
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.95) 0 2px, transparent 4px),
        radial-gradient(circle at 30% 32%, rgba(255,255,255,.9) 0 1.5px, transparent 3px),
        radial-gradient(circle at 72% 28%, rgba(34,211,238,.9) 0 1.5px, transparent 3px),
        radial-gradient(circle at 78% 70%, rgba(168,85,247,.9) 0 1.5px, transparent 3px),
        radial-gradient(circle at 24% 74%, rgba(255,255,255,.7) 0 1px, transparent 3px),
        conic-gradient(
            from 0deg,
            transparent 0deg,
            rgba(34,211,238,.36) 22deg,
            transparent 36deg,
            transparent 88deg,
            rgba(168,85,247,.34) 106deg,
            transparent 126deg,
            transparent 186deg,
            rgba(34,211,238,.3) 205deg,
            transparent 224deg,
            transparent 284deg,
            rgba(255,255,255,.3) 300deg,
            transparent 318deg
        );

    -webkit-mask:
        radial-gradient(circle,
            rgba(0,0,0,.95) 0 45%,
            transparent 46% 50%,
            rgba(0,0,0,.9) 51% 100%
        );

    mask:
        radial-gradient(circle,
            rgba(0,0,0,.95) 0 45%,
            transparent 46% 50%,
            rgba(0,0,0,.9) 51% 100%
        );

    animation:aulopolisOrbHudSpin 8s linear infinite reverse;
}

@keyframes aulopolisOrbSpin{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}

@keyframes aulopolisOrbHudSpin{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}

@keyframes aulopolisOrbFloat{
    0%,100%{
        transform:translateY(0) scale(1);
    }
    50%{
        transform:translateY(-8px) scale(1.025);
    }
}

/* Card 1 — núcleo azul/cyber */
.aulopolis-home-experience .flow-orb:not(.cube):not(.diamond){
    filter:hue-rotate(0deg);
}



.aulopolis-home-experience .flow-card h3{
    position:relative;
    margin:0 0 14px;
    font-size:1.35rem;
    font-weight:900;
    color:#ffffff;
    letter-spacing:-.035em;
    z-index:2;
}

.aulopolis-home-experience .flow-card p{
    position:relative;
    margin:0;
    max-width:310px;
    color:rgba(226,232,240,.68);
    font-size:.98rem;
    line-height:1.65;
    z-index:2;
}


/* =========================================
   FLOW ORB CUBE — CUBO HOLOGRÁFICO PREMIUM
   Inspirado en ORB2
========================================= */

.aulopolis-home-experience .flow-orb.cube{
    position:relative;
    width:150px;
    height:150px;
    margin:0;
    border-radius:50%;
    isolation:isolate;
    overflow:visible;

    background:
        /* glow central */
        radial-gradient(circle at 50% 50%,
            rgba(255,255,255,.95) 0%,
            rgba(34,211,238,.95) 5%,
            rgba(59,130,246,.45) 15%,
            rgba(124,58,237,.25) 28%,
            transparent 42%
        ),

        /* anillo violeta */
        radial-gradient(circle at 50% 50%,
            transparent 47%,
            rgba(168,85,247,.65) 49%,
            rgba(34,211,238,.30) 51%,
            transparent 54%
        ),

        /* anillo exterior */
        radial-gradient(circle at 50% 50%,
            transparent 65%,
            rgba(34,211,238,.45) 67%,
            rgba(124,58,237,.30) 70%,
            transparent 73%
        ),

        /* fondo tecnológico oscuro */
        radial-gradient(circle at 50% 50%,
            rgba(8,20,43,.88) 0%,
            rgba(2,6,23,.98) 100%
        );

    box-shadow:
        0 0 22px rgba(34,211,238,.55),
        0 0 58px rgba(59,130,246,.34),
        0 0 95px rgba(168,85,247,.28),
        inset 0 0 34px rgba(34,211,238,.18),
        inset 0 0 62px rgba(124,58,237,.18);

    animation:aulopolisCubeFloat 5.2s ease-in-out infinite;
}


/* Anillos holográficos exteriores */

.aulopolis-home-experience .flow-orb.cube::before{
    content:"";
    position:absolute;
    inset:-18px;
    border-radius:50%;
    z-index:2;

    background:
        conic-gradient(
            from -18deg,
            transparent 0deg,
            rgba(34,211,238,.85) 16deg,
            transparent 32deg,

            transparent 72deg,
            rgba(168,85,247,.78) 88deg,
            transparent 106deg,

            transparent 146deg,
            rgba(34,211,238,.62) 166deg,
            transparent 184deg,

            transparent 226deg,
            rgba(168,85,247,.72) 246deg,
            transparent 266deg,

            transparent 304deg,
            rgba(34,211,238,.70) 322deg,
            transparent 342deg,
            transparent 360deg
        );

    -webkit-mask:
        radial-gradient(circle,
            transparent 0 46%,
            #000 47% 50%,
            transparent 51% 57%,
            #000 58% 60%,
            transparent 61% 67%,
            #000 68% 70%,
            transparent 71% 100%
        );

    mask:
        radial-gradient(circle,
            transparent 0 46%,
            #000 47% 50%,
            transparent 51% 57%,
            #000 58% 60%,
            transparent 61% 67%,
            #000 68% 70%,
            transparent 71% 100%
        );

    filter:
        drop-shadow(0 0 10px rgba(34,211,238,.75))
        drop-shadow(0 0 18px rgba(168,85,247,.35));

    animation:aulopolisCubeRingsSpin 13s linear infinite;
}


/* Cubo central + plataforma inferior */

.aulopolis-home-experience .flow-orb.cube::after{
    content:"";
    position:absolute;
    left:50%;
    top:47%;
    width:64px;
    height:64px;
    z-index:5;

    transform:
        translate(-50%, -50%)
        rotateX(58deg)
        rotateZ(45deg);

    border-radius:10px;

    background:
        linear-gradient(135deg,
            rgba(255,255,255,.88) 0%,
            rgba(34,211,238,.95) 18%,
            rgba(59,130,246,.84) 48%,
            rgba(168,85,247,.85) 100%
        );

    border:1px solid rgba(255,255,255,.36);

    box-shadow:
        0 0 18px rgba(34,211,238,.75),
        0 0 38px rgba(59,130,246,.48),
        0 0 54px rgba(168,85,247,.38),
        inset 0 0 18px rgba(255,255,255,.28),
        inset -10px -10px 22px rgba(2,6,23,.28);
}

/* =========================================
   CUBE HUD — GEOMETRÍA, DATOS Y BASE
========================================= */

.aulopolis-home-experience .flow-orb.cube .orb-hud{
    position:absolute;
    inset:0;
    border-radius:50%;
    z-index:4;
    pointer-events:none;

    background:
        /* líneas geométricas tipo pirámide/rombo */
        linear-gradient(45deg,
            transparent 47%,
            rgba(168,85,247,.42) 48%,
            rgba(168,85,247,.42) 49%,
            transparent 50%
        ),

        linear-gradient(-45deg,
            transparent 47%,
            rgba(34,211,238,.36) 48%,
            rgba(34,211,238,.36) 49%,
            transparent 50%
        ),

        /* puntos brillantes */
        radial-gradient(circle at 50% 14%, rgba(255,255,255,.95) 0 2px, transparent 3px),
        radial-gradient(circle at 22% 50%, rgba(168,85,247,.95) 0 2px, transparent 3px),
        radial-gradient(circle at 78% 50%, rgba(34,211,238,.95) 0 2px, transparent 3px),
        radial-gradient(circle at 50% 86%, rgba(255,255,255,.85) 0 2px, transparent 3px),

        /* datos / micro líneas */
        repeating-conic-gradient(
            from 0deg,
            rgba(34,211,238,.18) 0deg 1deg,
            transparent 1deg 8deg
        );

    -webkit-mask:
        radial-gradient(circle,
            transparent 0 30%,
            rgba(0,0,0,.95) 31% 82%,
            transparent 83% 100%
        );

    mask:
        radial-gradient(circle,
            transparent 0 30%,
            rgba(0,0,0,.95) 31% 82%,
            transparent 83% 100%
        );

    animation:aulopolisCubeHudSpin 18s linear infinite reverse;
}


/* Plataforma inferior holográfica */

.aulopolis-home-experience .flow-orb.cube .orb-hud::before{
    content:"";
    position:absolute;
    left:50%;
    bottom:9px;
    width:112px;
    height:34px;
    transform:translateX(-50%) rotateX(64deg);
    border-radius:50%;
    z-index:3;

    background:
        radial-gradient(ellipse at center,
            rgba(255,255,255,.95) 0%,
            rgba(34,211,238,.85) 13%,
            rgba(168,85,247,.65) 35%,
            rgba(124,58,237,.30) 58%,
            transparent 75%
        );

    border:1px solid rgba(34,211,238,.34);

    box-shadow:
        0 0 18px rgba(34,211,238,.58),
        0 0 38px rgba(168,85,247,.45),
        inset 0 0 16px rgba(255,255,255,.16);
}


/* Líneas tipo caja/pirámide alrededor del cubo */

.aulopolis-home-experience .flow-orb.cube .orb-hud::after{
    content:"";
    position:absolute;
    left:50%;
    top:47%;
    width:102px;
    height:102px;
    transform:translate(-50%, -50%) rotate(45deg);
    border:1px solid rgba(168,85,247,.42);
    border-radius:8px;
    z-index:2;

    box-shadow:
        0 0 18px rgba(168,85,247,.28),
        inset 0 0 20px rgba(34,211,238,.10);
}

/* =========================================
   CUBE ORB ANIMATIONS
========================================= */

@keyframes aulopolisCubeFloat{
    0%,100%{
        transform:translateY(0) scale(1);
    }
    50%{
        transform:translateY(-8px) scale(1.025);
    }
}

@keyframes aulopolisCubeRingsSpin{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}

@keyframes aulopolisCubeHudSpin{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}

/* =========================================
   FLOW ORB DIAMOND — PIRÁMIDE HOLOGRÁFICA
========================================= */

.aulopolis-home-experience .flow-orb.diamond{
    position:relative;
    width:150px;
    height:150px;
    margin:0;
    border-radius:50%;
    isolation:isolate;
    overflow:visible;

    background:
        /* núcleo central */
        radial-gradient(circle at 50% 50%,
            rgba(255,255,255,.98) 0%,
            rgba(34,211,238,.95) 5%,
            rgba(59,130,246,.52) 14%,
            rgba(168,85,247,.32) 25%,
            transparent 38%
        ),

        /* anillo interior */
        radial-gradient(circle at 50% 50%,
            transparent 30%,
            rgba(34,211,238,.34) 32%,
            rgba(168,85,247,.22) 35%,
            transparent 38%
        ),

        /* anillo medio */
        radial-gradient(circle at 50% 50%,
            transparent 46%,
            rgba(168,85,247,.64) 48%,
            rgba(34,211,238,.30) 50%,
            transparent 53%
        ),

        /* anillo exterior */
        radial-gradient(circle at 50% 50%,
            transparent 64%,
            rgba(34,211,238,.50) 66%,
            rgba(168,85,247,.28) 69%,
            transparent 72%
        ),

        /* fondo oscuro */
        radial-gradient(circle at 50% 50%,
            rgba(8,20,43,.90) 0%,
            rgba(2,6,23,.98) 100%
        );

    box-shadow:
        0 0 22px rgba(34,211,238,.58),
        0 0 56px rgba(59,130,246,.34),
        0 0 92px rgba(168,85,247,.30),
        inset 0 0 30px rgba(34,211,238,.18),
        inset 0 0 58px rgba(168,85,247,.16);

    animation:aulopolisDiamondFloat 5s ease-in-out infinite;
}

.aulopolis-home-experience .flow-orb.diamond::before{
    content:"";
    position:absolute;
    inset:-18px;
    border-radius:50%;
    z-index:2;

    background:
        conic-gradient(
            from -14deg,
            transparent 0deg,
            rgba(34,211,238,.84) 16deg,
            transparent 32deg,

            transparent 70deg,
            rgba(168,85,247,.78) 88deg,
            transparent 106deg,

            transparent 146deg,
            rgba(34,211,238,.68) 166deg,
            transparent 186deg,

            transparent 226deg,
            rgba(168,85,247,.72) 246deg,
            transparent 266deg,

            transparent 304deg,
            rgba(34,211,238,.74) 322deg,
            transparent 340deg,
            transparent 360deg
        );

    -webkit-mask:
        radial-gradient(circle,
            transparent 0 45%,
            #000 46% 49%,
            transparent 50% 56%,
            #000 57% 59%,
            transparent 60% 66%,
            #000 67% 69%,
            transparent 70% 100%
        );

    mask:
        radial-gradient(circle,
            transparent 0 45%,
            #000 46% 49%,
            transparent 50% 56%,
            #000 57% 59%,
            transparent 60% 66%,
            #000 67% 69%,
            transparent 70% 100%
        );

    filter:
        drop-shadow(0 0 10px rgba(34,211,238,.72))
        drop-shadow(0 0 18px rgba(168,85,247,.34));

    animation:aulopolisDiamondRingsSpin 14s linear infinite;
}

.aulopolis-home-experience .flow-orb.diamond::after{
    content:"";
    position:absolute;
    left:50%;
    top:49%;
    width:0;
    height:0;
    z-index:5;
    transform:translate(-50%, -50%);

    border-left:42px solid transparent;
    border-right:42px solid transparent;
    border-bottom:72px solid rgba(130,245,255,.18);

    filter:
        drop-shadow(0 0 10px rgba(34,211,238,.75))
        drop-shadow(0 0 22px rgba(168,85,247,.45));
}

/* =========================================
   DIAMOND HUD
========================================= */

.aulopolis-home-experience .flow-orb.diamond .orb-hud{
    position:absolute;
    inset:0;
    border-radius:50%;
    z-index:4;
    pointer-events:none;

    background:
        /* triángulo secundario detrás */
        linear-gradient(60deg,
            transparent 49%,
            rgba(168,85,247,.26) 50%,
            transparent 51%
        ),
        linear-gradient(-60deg,
            transparent 49%,
            rgba(34,211,238,.22) 50%,
            transparent 51%
        ),
        linear-gradient(0deg,
            transparent 49%,
            rgba(168,85,247,.20) 50%,
            transparent 51%
        ),

        /* puntos brillantes */
        radial-gradient(circle at 50% 22%, rgba(255,255,255,.95) 0 2px, transparent 3px),
        radial-gradient(circle at 25% 68%, rgba(168,85,247,.95) 0 2px, transparent 3px),
        radial-gradient(circle at 75% 68%, rgba(34,211,238,.95) 0 2px, transparent 3px),
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.95) 0 2px, transparent 4px),

        /* micro líneas circulares */
        repeating-conic-gradient(
            from 0deg,
            rgba(34,211,238,.14) 0deg 1deg,
            transparent 1deg 8deg
        );

    -webkit-mask:
        radial-gradient(circle,
            transparent 0 22%,
            rgba(0,0,0,.96) 23% 82%,
            transparent 83% 100%
        );

    mask:
        radial-gradient(circle,
            transparent 0 22%,
            rgba(0,0,0,.96) 23% 82%,
            transparent 83% 100%
        );

    animation:aulopolisDiamondHudSpin 18s linear infinite reverse;
}

.aulopolis-home-experience .flow-orb.diamond .orb-hud::before{
    content:"";
    position:absolute;
    left:50%;
    bottom:8px;
    width:112px;
    height:34px;
    transform:translateX(-50%) rotateX(64deg);
    border-radius:50%;
    z-index:3;

    background:
        radial-gradient(ellipse at center,
            rgba(255,255,255,.95) 0%,
            rgba(34,211,238,.86) 14%,
            rgba(168,85,247,.66) 36%,
            rgba(124,58,237,.28) 58%,
            transparent 76%
        );

    border:1px solid rgba(34,211,238,.34);

    box-shadow:
        0 0 18px rgba(34,211,238,.56),
        0 0 36px rgba(168,85,247,.40),
        inset 0 0 16px rgba(255,255,255,.16);
}

.aulopolis-home-experience .flow-orb.diamond .orb-hud::after{
    content:"";
    position:absolute;
    left:50%;
    top:49%;
    width:94px;
    height:82px;
    transform:translate(-50%, -50%);
    z-index:2;
    clip-path:polygon(50% 0%, 0% 100%, 100% 100%);
    border:1px solid rgba(168,85,247,.36);
    background:
        linear-gradient(135deg,
            rgba(34,211,238,.05),
            rgba(168,85,247,.04)
        );

    box-shadow:
        0 0 18px rgba(168,85,247,.24),
        inset 0 0 16px rgba(34,211,238,.10);
}

/* =========================================
   DIAMOND ANIMATIONS
========================================= */

@keyframes aulopolisDiamondFloat{
    0%,100%{
        transform:translateY(0) scale(1);
    }
    50%{
        transform:translateY(-8px) scale(1.025);
    }
}

@keyframes aulopolisDiamondRingsSpin{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}

@keyframes aulopolisDiamondHudSpin{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}

/* =========================================
   AI CORE — ENCAPSULADO
========================================= */

.aulopolis-home-experience .aulopolis-ai-core-section{
    position:relative;
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:50px;
    align-items:center;
    padding:100px 20px 125px;
    z-index:5;
}

.aulopolis-home-experience .aulopolis-ai-core-section::before{
    content:"";
    position:absolute;
    inset:40px 20px;
    border-radius:44px;
    background:
        radial-gradient(circle at 70% 50%, rgba(34,211,238,.18), transparent 38%),
        radial-gradient(circle at 25% 20%, rgba(124,58,237,.2), transparent 36%),
        linear-gradient(145deg, rgba(15,23,42,.58), rgba(2,6,23,.84));
    border:1px solid rgba(148,163,184,.12);
    box-shadow:
        0 35px 110px rgba(0,0,0,.45),
        inset 0 1px 0 rgba(255,255,255,.06);
    z-index:-2;
}

.aulopolis-home-experience .aulopolis-ai-core-section::after{
    content:"";
    position:absolute;
    inset:40px 20px;
    border-radius:44px;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size:44px 44px;
    mask-image:radial-gradient(circle at 70% 50%, #000 0%, transparent 72%);
    opacity:.55;
    pointer-events:none;
    z-index:-1;
}

.aulopolis-home-experience .ai-core-info{
    position:relative;
    padding-left:22px;
}

.aulopolis-home-experience .ai-core-kicker{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:18px;
    padding:9px 14px;
    border-radius:999px;
    font-size:.75rem;
    font-weight:900;
    letter-spacing:.18em;
    color:#67e8f9;
    background:rgba(34,211,238,.08);
    border:1px solid rgba(34,211,238,.22);
    box-shadow:0 0 28px rgba(34,211,238,.12);
}

.aulopolis-home-experience .ai-core-kicker::before{
    content:"";
    width:8px;
    height:8px;
    border-radius:50%;
    background:#22d3ee;
    box-shadow:0 0 16px #22d3ee;
}

.aulopolis-home-experience .ai-core-info h2{
    max-width:520px;
    margin:0 0 22px;
    font-size:clamp(2.2rem, 4.3vw, 5rem);
    line-height:.92;
    font-weight:950;
    letter-spacing:-.075em;
    color:#ffffff;
    text-shadow:
        0 0 25px rgba(124,58,237,.35),
        0 0 60px rgba(34,211,238,.15);
}

.aulopolis-home-experience .ai-core-info p{
    max-width:500px;
    margin:0 0 34px;
    font-size:1.02rem;
    line-height:1.75;
    color:rgba(226,232,240,.7);
}

.aulopolis-home-experience .ai-core-btn{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:12px;
    padding:16px 22px;
    border-radius:18px;
    color:#020617;
    font-weight:900;
    text-decoration:none;
    background:linear-gradient(135deg, #22d3ee, #a78bfa 55%, #facc15);
    box-shadow:
        0 18px 45px rgba(34,211,238,.22),
        inset 0 1px 0 rgba(255,255,255,.5);
    transition:
        transform .35s cubic-bezier(.16,1,.3,1),
        box-shadow .35s ease;
}

.aulopolis-home-experience .ai-core-btn:hover{
    transform:translateY(-4px);
    color:#020617;
    text-decoration:none;
    box-shadow:
        0 24px 60px rgba(34,211,238,.32),
        0 0 36px rgba(124,58,237,.24),
        inset 0 1px 0 rgba(255,255,255,.55);
}

.aulopolis-home-experience .ai-core-btn span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:26px;
    height:26px;
    border-radius:50%;
    background:rgba(2,6,23,.16);
}


/* =========================================
   AI CORE MAP
========================================= */

.aulopolis-home-experience .ai-core-map{
    position:relative;
    min-height:540px;
    display:grid;
    grid-template-columns:1fr 300px 1fr;
    align-items:center;
    gap:28px;
}

.aulopolis-home-experience .ai-core-modules{
    display:flex;
    flex-direction:column;
    gap:18px;
    position:relative;
    z-index:4;
}

.aulopolis-home-experience .ai-core-modules.left{
    align-items:flex-end;
}

.aulopolis-home-experience .ai-core-modules.right{
    align-items:flex-start;
}

.aulopolis-home-experience .ai-module{
    position:relative;
    min-width:185px;
    padding:14px 18px;
    border-radius:18px;
    color:rgba(248,250,252,.88);
    font-size:.88rem;
    font-weight:800;
    letter-spacing:-.02em;
    text-decoration:none;
    background:
        linear-gradient(145deg, rgba(15,23,42,.88), rgba(2,6,23,.94));
    border:1px solid rgba(148,163,184,.16);
    box-shadow:
        0 16px 45px rgba(0,0,0,.3),
        inset 0 1px 0 rgba(255,255,255,.07);
    transition:
        transform .35s cubic-bezier(.16,1,.3,1),
        border-color .35s ease,
        background .35s ease;
}

.aulopolis-home-experience .ai-module::before{
    content:"";
    position:absolute;
    top:50%;
    width:42px;
    height:1px;
    background:linear-gradient(90deg, transparent, rgba(34,211,238,.65));
    opacity:.65;
}

.aulopolis-home-experience .ai-core-modules.left .ai-module::before{
    right:-42px;
}

.aulopolis-home-experience .ai-core-modules.right .ai-module::before{
    left:-42px;
    transform:scaleX(-1);
}

.aulopolis-home-experience .ai-module::after{
    content:"";
    position:absolute;
    top:50%;
    width:8px;
    height:8px;
    margin-top:-4px;
    border-radius:50%;
    background:#22d3ee;
    box-shadow:0 0 16px #22d3ee;
}

.aulopolis-home-experience .ai-core-modules.left .ai-module::after{
    right:-49px;
}

.aulopolis-home-experience .ai-core-modules.right .ai-module::after{
    left:-49px;
}

.aulopolis-home-experience .ai-module:hover{
    transform:translateY(-4px);
    color:#ffffff;
    text-decoration:none;
    border-color:rgba(34,211,238,.35);
    background:
        radial-gradient(circle at 15% 20%, rgba(34,211,238,.14), transparent 40%),
        linear-gradient(145deg, rgba(15,23,42,.92), rgba(2,6,23,.98));
}


/* =========================================
   REACTOR NEXUS
========================================= */

.aulopolis-home-experience .ai-core-reactor-nexus{
    position:relative;
    width:300px;
    height:300px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:auto;
    border-radius:50%;
    background:
        radial-gradient(circle at center, rgba(34,211,238,.08), transparent 60%);
    filter:drop-shadow(0 0 45px rgba(34,211,238,.22));
}

.aulopolis-home-experience .reactor-orbit{
    position:absolute;
    inset:0;
    border-radius:50%;
    border:1px solid rgba(34,211,238,.32);
    box-shadow:
        0 0 24px rgba(34,211,238,.18),
        inset 0 0 24px rgba(124,58,237,.08);
}

.aulopolis-home-experience .reactor-orbit::before{
    content:"";
    position:absolute;
    top:20px;
    left:50%;
    width:13px;
    height:13px;
    margin-left:-6.5px;
    border-radius:50%;
    background:linear-gradient(135deg, #ffffff, #22d3ee);
    box-shadow:
        0 0 16px rgba(34,211,238,.9),
        0 0 32px rgba(124,58,237,.5);
}

.aulopolis-home-experience .orbit-a{
    animation:aulopolisReactorSpin 13s linear infinite;
}

.aulopolis-home-experience .orbit-b{
    inset:27px;
    transform:rotate(62deg) scaleY(.56);
    border-color:rgba(167,139,250,.38);
    animation:aulopolisReactorSpinReverse 9s linear infinite;
}

.aulopolis-home-experience .orbit-c{
    inset:52px;
    transform:rotate(-28deg) scaleY(.72);
    border-color:rgba(250,204,21,.28);
    animation:aulopolisReactorSpin 15s linear infinite;
}

.aulopolis-home-experience .reactor-pulse{
    position:absolute;
    inset:38px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(34,211,238,.18), transparent 64%);
    animation:aulopolisReactorPulse 2.8s ease-in-out infinite;
}

.aulopolis-home-experience .reactor-grid{
    position:absolute;
    inset:76px;
    border-radius:50%;
    background-image:
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size:18px 18px;
    opacity:.22;
    mask-image:radial-gradient(circle, #000 0%, transparent 72%);
    animation:aulopolisGridRotate 18s linear infinite;
}

.aulopolis-home-experience .reactor-core{
    position:relative;
    width:138px;
    height:138px;
    border-radius:50%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:
        radial-gradient(circle at 35% 25%, #ffffff 0%, #67e8f9 10%, #7c3aed 43%, #020617 78%);
    border:1px solid rgba(255,255,255,.22);
    box-shadow:
        0 0 35px rgba(34,211,238,.45),
        0 0 90px rgba(124,58,237,.42),
        inset -20px -26px 35px rgba(0,0,0,.58),
        inset 12px 12px 22px rgba(255,255,255,.18);
    z-index:3;
    animation:aulopolisCoreFloat 5s ease-in-out infinite;
}

.aulopolis-home-experience .reactor-core::before{
    content:"";
    position:absolute;
    inset:-18px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.16);
    box-shadow:inset 0 0 20px rgba(34,211,238,.12);
}

.aulopolis-home-experience .reactor-core::after{
    content:"";
    position:absolute;
    top:24px;
    left:30px;
    width:23px;
    height:23px;
    border-radius:50%;
    background:rgba(255,255,255,.82);
    filter:blur(.5px);
}

.aulopolis-home-experience .reactor-core strong{
    position:relative;
    z-index:2;
    font-size:2.35rem;
    line-height:1;
    font-weight:950;
    color:#ffffff;
    letter-spacing:-.08em;
    text-shadow:0 0 20px rgba(255,255,255,.38);
}

.aulopolis-home-experience .reactor-core small{
    position:relative;
    z-index:2;
    margin-top:6px;
    font-size:.68rem;
    font-weight:900;
    letter-spacing:.26em;
    color:rgba(255,255,255,.78);
}


/* =========================================
   ANIMATIONS ENCAPSULADAS
========================================= */

@keyframes aulopolisFlowFloat{
    0%,100%{
        transform:translateY(0) rotate(0deg);
    }
    50%{
        transform:translateY(-12px) rotate(4deg);
    }
}

@keyframes aulopolisCoreFloat{
    0%,100%{
        transform:translateY(0) scale(1);
    }
    50%{
        transform:translateY(-10px) scale(1.025);
    }
}

@keyframes aulopolisReactorSpin{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}

@keyframes aulopolisReactorSpinReverse{
    from{
        transform:rotate(62deg) scaleY(.56);
    }
    to{
        transform:rotate(-298deg) scaleY(.56);
    }
}

@keyframes aulopolisReactorPulse{
    0%,100%{
        transform:scale(.92);
        opacity:.45;
    }
    50%{
        transform:scale(1.08);
        opacity:.95;
    }
}

@keyframes aulopolisGridRotate{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}


/* =========================================
   RESPONSIVE ENCAPSULADO
========================================= */

@media (max-width: 1200px){

    .aulopolis-home-experience .aulopolis-ai-core-section{
        grid-template-columns:1fr;
        gap:45px;
    }

    .aulopolis-home-experience .ai-core-info{
        text-align:center;
        padding-left:0;
    }

    .aulopolis-home-experience .ai-core-info h2,
    .aulopolis-home-experience .ai-core-info p{
        margin-left:auto;
        margin-right:auto;
    }

    .aulopolis-home-experience .ai-core-map{
        max-width:880px;
        margin:0 auto;
    }
}

@media (max-width: 991px){

    .aulopolis-home-experience .flow-grid{
        grid-template-columns:1fr;
        max-width:520px;
        margin:0 auto;
    }

    .aulopolis-home-experience .flow-card{
        min-height:260px;
    }

    .aulopolis-home-experience .ai-core-map{
        grid-template-columns:1fr;
        min-height:auto;
        gap:34px;
    }

    .aulopolis-home-experience .ai-core-reactor-nexus{
        order:1;
    }

    .aulopolis-home-experience .ai-core-modules.left{
        order:2;
        align-items:stretch;
    }

    .aulopolis-home-experience .ai-core-modules.right{
        order:3;
        align-items:stretch;
    }

    .aulopolis-home-experience .ai-module{
        text-align:center;
    }

    .aulopolis-home-experience .ai-module::before,
    .aulopolis-home-experience .ai-module::after{
        display:none;
    }
}

@media (max-width: 575px){

    .aulopolis-home-experience .aulopolis-flow-section{
        padding:80px 14px 60px;
    }

    .aulopolis-home-experience .aulopolis-ai-core-section{
        padding:75px 14px 90px;
    }

    .aulopolis-home-experience .aulopolis-ai-core-section::before,
    .aulopolis-home-experience .aulopolis-ai-core-section::after{
        inset:20px 8px;
        border-radius:30px;
    }

    .aulopolis-home-experience .flow-card{
        padding:28px 24px;
        border-radius:26px;
    }

    .aulopolis-home-experience .flow-orb{
        width:150px;
        height:150px;
        margin-bottom:30px;
    }

    .aulopolis-home-experience .ai-core-reactor-nexus{
        width:245px;
        height:245px;
    }

    .aulopolis-home-experience .reactor-core{
        width:116px;
        height:116px;
    }

    .aulopolis-home-experience .reactor-core strong{
        font-size:1.95rem;
    }

    .aulopolis-home-experience .ai-core-map{
        gap:24px;
    }

    .aulopolis-home-experience .ai-module{
        min-width:100%;
        padding:14px 16px;
    }
}



/* =========================================
   ROUTES SECTION — MOBILE POSITION
========================================= */

@media (max-width: 767px) {

    .aulopolis-routes-section {
        position: relative !important;

        margin-top: -150px !important;

        padding-top: 0 !important;

        z-index: 120 !important;

       background:transparent;

    }
}

.aulopolis-home-experience{
    position:relative;
    z-index:5;
    clear:both;
    width:100%;
    margin-top:0;
}

/* =========================================
   OVERRIDE HERO TAG — AULÓPOLIS BRAND
========================================= */

.aulopolis-hero .hero-tag.hero-brand-title,
.hero-left .hero-tag.hero-brand-title,
.hero-tag.hero-brand-title{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:14px !important;

    width:auto !important;
    max-width:none !important;

    margin:0 0 36px 0 !important;
    padding:0 !important;

    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    backdrop-filter:none !important;

    color:inherit !important;
    text-transform:none !important;
    letter-spacing:normal !important;
    line-height:1 !important;
}

.aulopolis-hero .hero-brand-title .hero-brand-name,
.hero-left .hero-brand-title .hero-brand-name,
.hero-brand-title .hero-brand-name{
    display:block !important;

font-size:clamp(44px, 4.8vw, 88px) !important;
line-height:.82 !important;
    font-weight:300 !important;
    letter-spacing:.13em !important;

    color:#ffffff !important;
    text-transform:uppercase !important;

    font-family:'Montserrat', 'Inter', 'Poppins', Arial, sans-serif !important;

    text-shadow:
        0 0 4px rgba(255,255,255,.85),
        0 0 14px rgba(255,255,255,.35),
        0 0 36px rgba(34,211,238,.18) !important;
}

.aulopolis-hero .hero-brand-title .hero-brand-subtitle,
.hero-left .hero-brand-title .hero-brand-subtitle,
.hero-brand-title .hero-brand-subtitle{
    display:block !important;

    font-size:clamp(26px, 2.2vw, 46px) !important;
    line-height:1.08 !important;
    font-weight:400 !important;
    letter-spacing:.01em !important;

    color:#00c8ff !important;
    text-transform:none !important;

    font-family:'Montserrat', 'Inter', 'Poppins', Arial, sans-serif !important;

    text-shadow:
        0 0 7px rgba(0,200,255,.65),
        0 0 22px rgba(0,200,255,.28) !important;
}

/* =========================================
   FIX HERO STRUCTURE — AULÓPOLIS
========================================= */

#rev_slider_1307_1_wrapper,
#rev_slider_1307_1,
#rev_slider_1307_1 rs-slide{
    background:#000;
}

#rev_slider_1307_1 rs-slide{
    overflow:hidden !important;
}

#rev_slider_1307_1 .hero-bg{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    z-index:0 !important;
}

.aulopolis-hero{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:hidden;
    z-index:5;
    pointer-events:none;
}

.aulopolis-hero a,
.aulopolis-hero button{
    pointer-events:auto;
}


/* =========================================
   LEFT CONTENT POSITION
========================================= */

.aulopolis-hero .hero-left{
    position:absolute;
    left:clamp(28px, 5vw, 90px);
    top:50%;
    transform:translateY(-50%);
    width:min(760px, 46vw);
    z-index:30;
    pointer-events:auto;
}


/* =========================================
   BRAND TITLE
========================================= */

.aulopolis-hero .hero-tag.hero-brand-title{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:10px !important;
    margin:0 0 24px !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    text-transform:none !important;
    top:-50px;
}

.aulopolis-hero .hero-brand-name{
    display:block !important;
    font-size:clamp(52px, 5.7vw, 112px) !important;
    line-height:.82 !important;
    font-weight:300 !important;
    letter-spacing:.13em !important;
    color:#ffffff !important;
    text-transform:uppercase !important;
    font-family:'Montserrat', 'Inter', 'Poppins', Arial, sans-serif !important;
    text-shadow:
        0 0 4px rgba(255,255,255,.82),
        0 0 14px rgba(255,255,255,.32),
        0 0 36px rgba(34,211,238,.18) !important;
}

.aulopolis-hero .hero-brand-subtitle{
    display:block !important;
    font-size:clamp(22px, 1.85vw, 40px) !important;
    line-height:1.08 !important;
    font-weight:400 !important;
    letter-spacing:.01em !important;
    color:#00c8ff !important;
    text-transform:none !important;
    font-family:'Montserrat', 'Inter', 'Poppins', Arial, sans-serif !important;
    text-shadow:
        0 0 7px rgba(0,200,255,.65),
        0 0 22px rgba(0,200,255,.28) !important;
}


/* =========================================
   HERO TITLE — MANTENIDO
========================================= */

.aulopolis-hero .hero-title{
    margin:0 0 20px !important;
    padding:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:0 !important;
    color:#ffffff !important;
    font-weight:950 !important;
    line-height:.86 !important;
    letter-spacing:-.055em !important;
    text-shadow:
        0 0 20px rgba(0,0,0,.46),
        0 0 46px rgba(34,211,238,.15) !important;
    position:relative;
    top:-50px;
}

.aulopolis-hero .hero-title span{
    display:block !important;
    font-size:clamp(88px, 4.2vw, 82px) !important;
    line-height:.88 !important;
}


/* =========================================
   DESCRIPTION
========================================= */

.aulopolis-hero .hero-brand-description{
    max-width:520px;
    margin:0 0 26px !important;
    font-size:clamp(14px, .95vw, 17px);
    line-height:1.55;
    font-weight:400;
    color:rgba(226,232,240,.82);
    text-shadow:0 0 18px rgba(0,0,0,.45);
    position: relative;
    top: -50px;
}


/* =========================================
   BUTTONS
========================================= */

.aulopolis-hero .hero-actions{
    display:flex;
    align-items:center;
    gap:14px;
    margin:0 0 30px;
    flex-wrap:wrap;
    position: relative;
    top: -70px;
}

.aulopolis-hero .hero-primary-btn,
.aulopolis-hero .hero-secondary-btn{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:46px;
    padding:0 22px;
    border-radius:12px;
    font-size:14px;
    line-height:1;
    font-weight:800;
    text-decoration:none !important;
    transition:
        transform .28s cubic-bezier(.16,1,.3,1),
        box-shadow .28s ease,
        border-color .28s ease,
        background .28s ease;
}

.aulopolis-hero .hero-primary-btn{
    color:#ffffff !important;
    background:linear-gradient(135deg, #00c8ff 0%, #2563eb 52%, #7c3aed 100%);
    border:1px solid rgba(125,211,252,.44);
    box-shadow:
        0 16px 38px rgba(37,99,235,.34),
        0 0 26px rgba(34,211,238,.24),
        inset 0 1px 0 rgba(255,255,255,.28);
}

.aulopolis-hero .hero-secondary-btn{
    color:rgba(226,232,240,.92) !important;
    background:rgba(2,8,23,.54);
    border:1px solid rgba(148,163,184,.24);
    box-shadow:
        0 14px 34px rgba(0,0,0,.24),
        inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter:blur(14px);
}

.aulopolis-hero .hero-primary-btn span,
.aulopolis-hero .hero-secondary-btn span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border-radius:999px;
}

.aulopolis-hero .hero-primary-btn span{
    background:rgba(255,255,255,.14);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22);
}

.aulopolis-hero .hero-secondary-btn span{
    color:#67e8f9;
    background:rgba(34,211,238,.08);
    border:1px solid rgba(34,211,238,.22);
    box-shadow:0 0 14px rgba(34,211,238,.18);
}

.aulopolis-hero .hero-primary-btn:hover,
.aulopolis-hero .hero-secondary-btn:hover{
    transform:translateY(-3px);
}


/* =========================================
   STATS
========================================= */

.aulopolis-hero .hero-stats{
    display:flex;
    align-items:center;
    gap:22px;
    flex-wrap:wrap;
}

.aulopolis-hero .hero-stat{
    display:inline-flex;
    align-items:center;
    gap:9px;
    color:rgba(226,232,240,.78);
    font-size:13px;
    line-height:1;
    font-weight:700;
    white-space:nowrap;
}

.aulopolis-hero .hero-stat-icon{
    width:22px;
    height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#22d3ee;
    background:rgba(34,211,238,.08);
    border:1px solid rgba(34,211,238,.26);
    box-shadow:
        0 0 14px rgba(34,211,238,.18),
        inset 0 1px 0 rgba(255,255,255,.08);
}

.aulopolis-hero .hero-stat-icon svg{
    width:13px;
    height:13px;
    display:block;
}

/* =========================================
   STATS — MOBILE FLOATING APPLE STYLE
========================================= */

@media (max-width: 767px) {

    .aulopolis-hero .hero-stats {
        position: relative !important;
        z-index: 999 !important;

        width: calc(100% - 42px) !important;
        max-width: 390px !important;

        margin: 26px auto 0 !important;
        padding: 0 !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;

        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;

        overflow: visible !important;
        top:40px;
    }

    .aulopolis-hero .hero-stats::before {
        display: none !important;
    }

    .aulopolis-hero .hero-stat {
        position: relative !important;
        z-index: 2 !important;

        width: 100% !important;
        min-height: 68px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 14px !important;

        padding: 12px 16px !important;

        border-radius: 24px !important;

        color: rgba(226, 232, 240, .92) !important;

        font-size: 13px !important;
        font-weight: 750 !important;
        line-height: 1.25 !important;
        letter-spacing: -.01em !important;

        white-space: normal !important;
        text-align: left !important;

        background:
            radial-gradient(
                circle at 12% 50%,
                rgba(34, 211, 238, .16),
                transparent 34%
            ),
            linear-gradient(
                135deg,
                rgba(15, 23, 42, .72),
                rgba(2, 6, 23, .42)
            ) !important;

        border: 1px solid rgba(125, 211, 252, .26) !important;

        box-shadow:
            inset 0 0 22px rgba(255, 255, 255, .035),
            0 0 20px rgba(34, 211, 238, .12),
            0 18px 40px rgba(0, 0, 0, .42) !important;

        backdrop-filter: blur(22px) saturate(170%) !important;
        -webkit-backdrop-filter: blur(22px) saturate(170%) !important;

        overflow: hidden !important;

        animation: auloStatFloat 5.6s ease-in-out infinite;

        transition:
            transform .35s cubic-bezier(.2, .8, .2, 1),
            border-color .35s ease,
            box-shadow .35s ease,
            background .35s ease !important;
    }

    .aulopolis-hero .hero-stat:nth-child(2) {
        animation-delay: .45s;
    }

    .aulopolis-hero .hero-stat:nth-child(3) {
        animation-delay: .9s;
    }

    .aulopolis-hero .hero-stat::before {
        content: "" !important;
        position: absolute !important;
        inset: 0 !important;

        background:
            linear-gradient(
                120deg,
                transparent 0%,
                rgba(255, 255, 255, .12) 42%,
                transparent 62%
            ) !important;

        transform: translateX(-130%) !important;
        animation: auloStatShine 6s ease-in-out infinite !important;

        pointer-events: none !important;
    }

    .aulopolis-hero .hero-stat::after {
        display: none !important;
    }

    .aulopolis-hero .hero-stat:hover,
    .aulopolis-hero .hero-stat:active {
        transform: translateY(-4px) scale(1.018) !important;

        border-color: rgba(34, 211, 238, .64) !important;

        background:
            radial-gradient(
                circle at 14% 50%,
                rgba(34, 211, 238, .24),
                transparent 36%
            ),
            linear-gradient(
                135deg,
                rgba(15, 23, 42, .84),
                rgba(8, 47, 73, .52)
            ) !important;

        box-shadow:
            inset 0 0 24px rgba(255, 255, 255, .055),
            0 0 26px rgba(34, 211, 238, .34),
            0 0 58px rgba(37, 99, 235, .18),
            0 22px 48px rgba(0, 0, 0, .55) !important;
    }

    .aulopolis-hero .hero-stat-icon {
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;

        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        border-radius: 50% !important;

        color: #67e8f9 !important;

        background:
            radial-gradient(
                circle at 35% 25%,
                rgba(255, 255, 255, .28),
                transparent 28%
            ),
            radial-gradient(
                circle at center,
                rgba(34, 211, 238, .16),
                rgba(2, 6, 23, .70)
            ) !important;

        border: 1px solid rgba(34, 211, 238, .55) !important;

        box-shadow:
            0 0 18px rgba(34, 211, 238, .42),
            0 0 38px rgba(37, 99, 235, .18),
            inset 0 0 16px rgba(34, 211, 238, .14),
            inset 0 1px 0 rgba(255, 255, 255, .18) !important;

        transition:
            transform .35s cubic-bezier(.2,.8,.2,1),
            box-shadow .35s ease,
            color .35s ease !important;
    }

    .aulopolis-hero .hero-stat:hover .hero-stat-icon,
    .aulopolis-hero .hero-stat:active .hero-stat-icon {
        transform: scale(1.1) rotate(-4deg) !important;

        color: #ffffff !important;

        box-shadow:
            0 0 22px rgba(34, 211, 238, .70),
            0 0 52px rgba(139, 92, 246, .30),
            inset 0 0 18px rgba(255, 255, 255, .18) !important;
    }

    .aulopolis-hero .hero-stat-icon svg {
        width: 21px !important;
        height: 21px !important;
        stroke-width: 1.8 !important;

        filter:
            drop-shadow(0 0 8px rgba(34, 211, 238, .85))
            drop-shadow(0 0 16px rgba(37, 99, 235, .38)) !important;
    }

    .aulopolis-hero .hero-stat > span:last-child {
        display: block !important;
        flex: 1 !important;

        color: rgba(226, 232, 240, .86) !important;
    }

    .aulopolis-hero .hero-stat strong,
    .aulopolis-hero .hero-stat b {
        display: block !important;

        margin-bottom: 3px !important;

        color: #ffffff !important;

        font-size: 20px !important;
        font-weight: 950 !important;
        line-height: 1 !important;
        letter-spacing: -.04em !important;

        text-shadow:
            0 0 10px rgba(255,255,255,.45),
            0 0 22px rgba(34,211,238,.20) !important;
    }
}

/* Ajuste para móviles muy pequeños */
@media (max-width: 390px) {
    .aulopolis-hero .hero-stats {
        width: calc(100% - 32px) !important;
        gap: 10px !important;
        margin-top: 22px !important;
    }

    .aulopolis-hero .hero-stat {
        min-height: 62px !important;
        padding: 10px 14px !important;
        border-radius: 20px !important;
        font-size: 12px !important;
    }

    .aulopolis-hero .hero-stat-icon {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
    }

    .aulopolis-hero .hero-stat-icon svg {
        width: 19px !important;
        height: 19px !important;
    }
}

/* Animaciones */
@keyframes auloStatFloat {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

@keyframes auloStatShine {
    0%, 62% {
        transform: translateX(-130%);
        opacity: 0;
    }

    72% {
        opacity: .85;
    }

    88% {
        transform: translateX(130%);
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}
/* =========================================
   NEXUS MAP LAYER
========================================= */

.aulopolis-hero .aulopolis-nexus-map{
    position:absolute;
    inset:0;
    z-index:999999;
    pointer-events:none;
}

.aulopolis-hero .nexus-node{
    pointer-events:auto;
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 991px){

    .aulopolis-hero .hero-left{
        left:24px;
        right:24px;
        top:48%;
        width:auto;
        max-width:620px;
    }

    .aulopolis-hero .hero-brand-name{
        font-size:clamp(44px, 9vw, 74px) !important;
    }

    .aulopolis-hero .hero-brand-subtitle{
        font-size:clamp(18px, 4vw, 28px) !important;
    }

    .aulopolis-hero .hero-title span{
        font-size:clamp(34px, 8vw, 58px) !important;
    }
}

@media (max-width: 575px){

    .aulopolis-hero .hero-left{
        left:18px;
        right:18px;
        top:50%;
    }

    .aulopolis-hero .hero-tag.hero-brand-title{
        margin-bottom:18px !important;
    }

    .aulopolis-hero .hero-brand-name{
        font-size:42px !important;
        letter-spacing:.08em !important;
    }

    .aulopolis-hero .hero-brand-subtitle{
        font-size:18px !important;
    }

    .aulopolis-hero .hero-title span{
        font-size:34px !important;
    }

    .aulopolis-hero .hero-actions{
        flex-direction:column;
        align-items:flex-start;
        gap:10px;
        margin-bottom:24px;
    }

    .aulopolis-hero .hero-primary-btn,
    .aulopolis-hero .hero-secondary-btn{
        width:100%;
        max-width:270px;
        min-height:44px;
        position: relative;
        left: 15%;
        top: 100px;
    
    }

    .aulopolis-hero .hero-stats{
        flex-direction:column;
        align-items:flex-start;
        gap:12px;
    }
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 991px) {
    .aulopolis-hero .hero-title {
        top: -60px !important;
        margin: 0 auto 18px !important;

        align-items: center !important;
        text-align: center !important;

        line-height: .9 !important;
        letter-spacing: -.045em !important;

        max-width: 92vw !important;
    }

    .aulopolis-hero .hero-title span {
        width: 100% !important;
        text-align: center !important;

        font-size: clamp(56px, 9vw, 82px) !important;
        line-height: .9 !important;
    }
}

/* =========================================
   MOBILE GENERAL
========================================= */

@media (max-width: 767px) {
    .aulopolis-hero .hero-title {
        top: -28px !important;

        margin: 0 auto 16px !important;

        align-items: center !important;
        text-align: center !important;

        line-height: .92 !important;
        letter-spacing: -.04em !important;

        max-width: 94vw !important;
    }

    .aulopolis-hero .hero-title span {
        width: 100% !important;
        text-align: center !important;

        font-size: clamp(44px, 13vw, 64px) !important;
        line-height: .92 !important;
    }
}

/* =========================================
   MOBILE MEDIANO
========================================= */

@media (max-width: 480px) {
    .aulopolis-hero .hero-title {
        top: -18px !important;

        margin: 0 auto 14px !important;

        align-items: center !important;
        text-align: center !important;

        max-width: 96vw !important;
    }

    .aulopolis-hero .hero-title span {
        width: 100% !important;
        text-align: center !important;

        font-size: clamp(40px, 14vw, 58px) !important;
        line-height: .94 !important;
    }
}

/* =========================================
   MOBILE PEQUEÑO
========================================= */

@media (max-width: 390px) {
    .aulopolis-hero .hero-title {
        top: -10px !important;

        margin: 0 auto 12px !important;

        align-items: center !important;
        text-align: center !important;

        letter-spacing: -.035em !important;
    }

    .aulopolis-hero .hero-title span {
        width: 100% !important;
        text-align: center !important;

        font-size: clamp(36px, 13.5vw, 52px) !important;
        line-height: .95 !important;
    }
}

/* =========================================
   MOBILE MUY PEQUEÑO
========================================= */

@media (max-width: 340px) {
    .aulopolis-hero .hero-title {
        top: 0 !important;

        margin: 0 auto 10px !important;

        align-items: center !important;
        text-align: center !important;

        letter-spacing: -.03em !important;
    }

    .aulopolis-hero .hero-title span {
        width: 100% !important;
        text-align: center !important;

        font-size: clamp(32px, 13vw, 46px) !important;
        line-height: .96 !important;
    }
}
/* =========================================================
   AULÓPOLIS TOP NAV — PREMIUM GLASS NAVBAR
========================================================= */

.aulopolis-topnav{
    position:fixed;
    top:0;
    left:0;
    right:0;
    width:100%;
    height:82px;
    z-index:99999;
    display:flex;
    align-items:center;
    padding:12px 24px;
    background:
        linear-gradient(
            180deg,
            rgba(2,6,23,.82) 0%,
            rgba(2,8,23,.62) 100%
        );
    backdrop-filter:blur(22px) saturate(160%);
    -webkit-backdrop-filter:blur(22px) saturate(160%);
    border-bottom:1px solid rgba(34,211,238,.16);
    box-shadow:
        0 18px 55px rgba(0,0,0,.38),
        inset 0 1px 0 rgba(255,255,255,.06);
}

.aulopolis-topnav::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 18% 50%, rgba(34,211,238,.12), transparent 28%),
        radial-gradient(circle at 82% 50%, rgba(124,58,237,.14), transparent 30%);
    opacity:.9;
}

.aulopolis-topnav-inner{
    position:relative;
    z-index:2;
    width:100%;
    max-width:1840px;
    margin:0 auto;
    display:grid;
    grid-template-columns:auto minmax(320px, 640px) auto;
    align-items:center;
    gap:28px;
}


/* =========================================================
   LEFT BRAND
========================================================= */

.aulopolis-topnav-left{
    display:flex;
    align-items:center;
    gap:26px;
    min-width:0;
}

.aulopolis-topnav-brand{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none !important;
    color:#ffffff !important;
    max-width:30%;
}

/* ==========================================================================
   1. BASE (Pantallas móviles - Menos de 767px)
   ========================================================================== */
.aulopolis-topnav-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none !important;
    color: #ffffff !important;
    max-width: 60%;
}

img.aulopolis-topnav-logo {
    max-width: 140px;
    height: auto;
}

@media (max-width: 768px) {
    img.aulopolis-topnav-logo {
        max-width: 340px !important;
        height: auto !important;
    }
}

/* ==========================================================================
   2. TABLETS / PORTÁTILES MEDIANOS (A partir de 767px)
   ========================================================================== */
@media (min-width: 767px) {
    .aulopolis-topnav-brand {
        gap: 12px;
        max-width: 45%;
    }

    img.aulopolis-topnav-logo {
        max-width: 200px;
    }
}

/* ==========================================================================
   3. ESCRITORIOS ESTÁNDAR (A partir de 991px)
   ========================================================================== */
@media (min-width: 991px) {
    .aulopolis-topnav-brand {
        max-width: 40%;
    }

    img.aulopolis-topnav-logo {
        max-width: 250px;
    }
}

/* ==========================================================================
   4. PANTALLAS GRANDES (A partir de 1400px)
   ========================================================================== */
@media (min-width: 1400px) {
    .aulopolis-topnav-brand {
        max-width: 30%;
    }

    img.aulopolis-topnav-logo {
        max-width: 300px;
    }
}

.aulopolis-topnav-brand .brand-orb{
    position:relative;
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:50%;
    background:
        radial-gradient(circle at 35% 25%, #ffffff 0%, #67e8f9 14%, #2563eb 42%, #7c3aed 72%, #020617 100%);
    box-shadow:
        0 0 22px rgba(34,211,238,.45),
        0 0 44px rgba(124,58,237,.28),
        inset -8px -10px 16px rgba(0,0,0,.45);
}

.aulopolis-topnav-brand .brand-orb::before{
    content:"";
    position:absolute;
    inset:-6px;
    border-radius:50%;
    border:1px solid rgba(34,211,238,.32);
    transform:rotate(-18deg) scaleY(.48);
    box-shadow:0 0 16px rgba(34,211,238,.25);
}

.aulopolis-topnav-brand .brand-text{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.aulopolis-topnav-brand strong{
    font-size:18px;
    line-height:1;
    font-weight:900;
    letter-spacing:.12em;
    color:#ffffff;
}

.aulopolis-topnav-brand small{
    font-size:10px;
    line-height:1;
    font-weight:600;
    letter-spacing:.08em;
    color:rgba(103,232,249,.74);
    text-transform:uppercase;
}


/* =========================================================
   CONTACT
========================================================= */

.aulopolis-contact-items{
    display:flex;
    align-items:center;
    gap:14px;
}

.aulopolis-contact-item{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:rgba(226,232,240,.72);
    font-size:12px;
    line-height:1;
    font-weight:600;
    white-space:nowrap;
}

.aulopolis-contact-item svg{
    color:#67e8f9;
    filter:drop-shadow(0 0 8px rgba(34,211,238,.35));
}


/* =========================================================
   CENTER SEARCH
========================================================= */

.aulopolis-topnav-center{
    display:flex;
    justify-content:center;
    min-width:0;
}

.aulopolis-search{
    position:relative;
    width:100%;
    max-width:640px;
    height:48px;
}

.aulopolis-search input{
    width:100%;
    height:100%;
    padding:0 54px 0 20px;
    border-radius:999px;
    border:1px solid rgba(34,211,238,.20);
    outline:none;
    color:#ffffff;
    font-size:14px;
    font-weight:600;
    background:
        radial-gradient(circle at 15% 50%, rgba(34,211,238,.10), transparent 32%),
        rgba(2,8,23,.72);
    box-shadow:
        0 14px 38px rgba(0,0,0,.26),
        inset 0 1px 0 rgba(255,255,255,.07);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    transition:
        border-color .28s ease,
        box-shadow .28s ease,
        background .28s ease;
}

.aulopolis-search input::placeholder{
    color:rgba(226,232,240,.48);
}

.aulopolis-search input:focus{
    border-color:rgba(34,211,238,.44);
    background:rgba(2,8,23,.88);
    box-shadow:
        0 18px 46px rgba(0,0,0,.34),
        0 0 30px rgba(34,211,238,.16),
        inset 0 1px 0 rgba(255,255,255,.10);
}

.aulopolis-search-btn{
    position:absolute;
    top:50%;
    right:8px;
    width:36px;
    height:36px;
    transform:translateY(-50%);
    display:flex;
    align-items:center;
    justify-content:center;
    border:none;
    border-radius:50%;
    color:#020617;
    background:linear-gradient(135deg, #22d3ee, #60a5fa, #a78bfa);
    box-shadow:
        0 0 18px rgba(34,211,238,.32),
        inset 0 1px 0 rgba(255,255,255,.35);
    cursor:pointer;
}

.aulopolis-search-btn svg{
    width:17px;
    height:17px;
}


/* =========================================================
   RIGHT ACTIONS
========================================================= */

.aulopolis-topnav-right{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:14px;
    min-width:0;
}

.aulopolis-topnav-control,
.aulopolis-language-form{
    display:flex;
    align-items:center;
}

.aulopolis-topnav-icons{
    display:flex;
    align-items:center;
    gap:10px;
}

.aulopolis-user-menu{
    display:flex;
    align-items:center;
}





/* =========================================================
   USER MENU
========================================================= */

.aulopolis-topnav .navbar-user{
    min-height:46px;
    padding:5px 8px 5px 6px;
    border-radius:999px;
    background:rgba(15,23,42,.58);
    border:1px solid rgba(148,163,184,.14);
    box-shadow:
        0 10px 28px rgba(0,0,0,.22),
        inset 0 1px 0 rgba(255,255,255,.06);
}

.aulopolis-topnav .navbar-user img{
    width:36px;
    height:36px;
    border:1px solid rgba(34,211,238,.28);
    box-shadow:0 0 18px rgba(34,211,238,.18);
}

.aulopolis-topnav .navbar-user .user-name{
    color:#ffffff !important;
    font-weight:800;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1200px){

    .aulopolis-topnav{
        height:auto;
        min-height:82px;
    }

    .aulopolis-topnav-inner{
        grid-template-columns:1fr auto;
        grid-template-areas:
            "brand actions"
            "search search";
        gap:12px 18px;
    }

    .aulopolis-topnav-left{
        grid-area:brand;
    }

    .aulopolis-topnav-center{
        grid-area:search;
    }

    .aulopolis-topnav-right{
        grid-area:actions;
    }

    .aulopolis-search{
        max-width:100%;
    }

    .aulopolis-contact-items{
        display:none;
    }
}

@media (max-width: 768px){

    .aulopolis-topnav{
        padding:10px 14px;
    }

    .aulopolis-topnav-inner{
        grid-template-columns:1fr;
        grid-template-areas:
            "brand"
            "search"
            "actions";
    }

    .aulopolis-topnav-left,
    .aulopolis-topnav-center,
    .aulopolis-topnav-right{
        width:220%;
        justify-content:space-between;
    }

    .aulopolis-topnav-brand strong{
        font-size:15px;
    }

    .aulopolis-topnav-brand small{
        font-size:9px;
    }

    .aulopolis-topnav-brand .brand-orb{
        width:34px;
        height:34px;
        flex-basis:34px;
    }

    .aulopolis-search{
        height:44px;
    }

    .aulopolis-topnav-right{
        justify-content:flex-start;
        flex-wrap:wrap;
    }
}


/* =========================================================
   AULÓPOLIS ENTERPRISE SECTION — FULL WIDTH PREMIUM
========================================================= */

.aulopolis-enterprise-section{
    position:relative;
    width:100%;
    min-height:360px;
    display:grid;
    grid-template-columns:minmax(320px, .62fr) minmax(680px, 1.38fr);
    gap:48px;
    align-items:center;
    padding:56px 52px;
    overflow:hidden;
    isolation:isolate;
    background:
        radial-gradient(circle at 20% 50%, rgba(34,211,238,.12), transparent 34%),
        radial-gradient(circle at 82% 50%, rgba(124,58,237,.14), transparent 36%),
        linear-gradient(180deg, #020814 0%, #02030a 100%);
    border-top:1px solid rgba(34,211,238,.12);
    border-bottom:1px solid rgba(34,211,238,.12);
}

.aulopolis-enterprise-section::before{
    content:"";
    position:absolute;
    inset:22px;
    border-radius:28px;
    background:
        linear-gradient(145deg, rgba(8,20,43,.68), rgba(2,6,23,.88));
    border:1px solid rgba(34,211,238,.16);
    box-shadow:
        0 30px 90px rgba(0,0,0,.48),
        inset 0 1px 0 rgba(255,255,255,.06);
    z-index:-2;
}

.aulopolis-enterprise-section::after{
    content:"";
    position:absolute;
    inset:22px;
    border-radius:28px;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size:42px 42px;
    opacity:.5;
    mask-image:radial-gradient(circle at 70% 50%, #000 0%, transparent 74%);
    pointer-events:none;
    z-index:-1;
}


/* LEFT CONTENT */

.enterprise-content{
    position:relative;
    z-index:3;
    max-width:560px;
}

.enterprise-kicker{
    display:inline-flex;
    margin-bottom:14px;
    padding:8px 12px;
    border-radius:999px;
    color:#67e8f9;
    font-size:11px;
    font-weight:900;
    letter-spacing:.16em;
    background:rgba(34,211,238,.08);
    border:1px solid rgba(34,211,238,.18);
    box-shadow:0 0 22px rgba(34,211,238,.12);
}

.enterprise-content h2{
    margin:0 0 18px;
    font-size:clamp(2rem, 3vw, 4rem);
    line-height:1;
    font-weight:900;
    letter-spacing:-.055em;
    color:#dffcff;
    text-shadow:
        0 0 12px rgba(34,211,238,.35),
        0 0 34px rgba(34,211,238,.12);
}

.enterprise-content p{
    max-width:460px;
    margin:0 0 28px;
    color:rgba(226,232,240,.76);
    font-size:clamp(1rem, 1.05vw, 1.18rem);
    line-height:1.75;
    font-weight:500;
}

.enterprise-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    min-height:54px;
    padding:0 28px;
    border-radius:14px;
    color:#ffffff !important;
    font-size:16px;
    font-weight:900;
    text-decoration:none !important;
    background:linear-gradient(135deg, #22d3ee 0%, #2563eb 52%, #7c3aed 100%);
    border:1px solid rgba(125,211,252,.42);
    box-shadow:
        0 18px 45px rgba(37,99,235,.36),
        0 0 30px rgba(34,211,238,.24),
        inset 0 1px 0 rgba(255,255,255,.28);
    transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease;
}

.enterprise-btn span{
    width:26px;
    height:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:rgba(255,255,255,.14);
}

.enterprise-btn:hover{
    transform:translateY(-4px);
    box-shadow:
        0 24px 60px rgba(37,99,235,.46),
        0 0 42px rgba(34,211,238,.32),
        inset 0 1px 0 rgba(255,255,255,.34);
}


/* DASHBOARD */

.enterprise-dashboard{
    position:relative;
    z-index:3;
    min-height:270px;
    padding:22px;
    border-radius:24px;
    background:
        radial-gradient(circle at 82% 20%, rgba(34,211,238,.08), transparent 36%),
        linear-gradient(145deg, rgba(2,8,23,.72), rgba(2,6,23,.92));
    border:1px solid rgba(34,211,238,.14);
    box-shadow:
        0 26px 70px rgba(0,0,0,.38),
        inset 0 1px 0 rgba(255,255,255,.06);
    overflow:hidden;
}

.enterprise-dashboard::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg, transparent, rgba(34,211,238,.10), transparent);
    transform:translateX(-100%);
    animation:enterpriseScan 4.5s linear infinite;
    pointer-events:none;
}

.enterprise-metrics{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:14px;
    margin-bottom:18px;
}

.enterprise-metric-card{
    min-height:70px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px;
    border-radius:14px;
    background:rgba(8,20,43,.62);
    border:1px solid rgba(148,163,184,.12);
    box-shadow:
        0 12px 30px rgba(0,0,0,.22),
        inset 0 1px 0 rgba(255,255,255,.05);
}

.metric-icon{
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    color:#67e8f9;
    font-size:18px;
    font-weight:900;
    background:rgba(34,211,238,.08);
    border:1px solid rgba(34,211,238,.22);
    box-shadow:0 0 18px rgba(34,211,238,.16);
}

.enterprise-metric-card span{
    display:block;
    margin-bottom:5px;
    color:rgba(226,232,240,.52);
    font-size:11px;
    font-weight:800;
}

.enterprise-metric-card strong{
    display:block;
    color:#ffffff;
    font-size:clamp(1.3rem, 1.6vw, 2rem);
    line-height:1;
    font-weight:900;
    letter-spacing:-.03em;
}


/* CHARTS */

.enterprise-charts{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:18px;
}

.enterprise-chart-card{
    position:relative;
    min-height:185px;
    padding:16px;
    border-radius:18px;
    background:rgba(2,8,23,.58);
    border:1px solid rgba(148,163,184,.12);
    box-shadow:
        0 14px 36px rgba(0,0,0,.26),
        inset 0 1px 0 rgba(255,255,255,.05);
    overflow:hidden;
}

.chart-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}

.chart-header h3{
    margin:0;
    color:rgba(248,250,252,.88);
    font-size:14px;
    font-weight:900;
}

.chart-header span{
    color:rgba(103,232,249,.58);
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.enterprise-line-card canvas{
    width:100%;
    height:132px;
    display:block;
}

.donut-layout{
    display:grid;
    grid-template-columns:130px 1fr;
    align-items:center;
    gap:14px;
}

.enterprise-donut-card canvas{
    width:130px;
    height:130px;
    display:block;
}

.donut-legend{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.donut-legend div{
    display:flex;
    align-items:center;
    gap:8px;
    color:rgba(226,232,240,.72);
    font-size:12px;
    font-weight:800;
}

.donut-legend span{
    width:9px;
    height:9px;
    border-radius:50%;
    background:var(--c);
    box-shadow:0 0 12px var(--c);
}


/* BACKGROUND PULSE */

.enterprise-pulse-grid{
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 12% 78%, rgba(34,211,238,.11), transparent 24%),
        radial-gradient(circle at 78% 22%, rgba(124,58,237,.13), transparent 26%);
    animation:enterprisePulse 4s ease-in-out infinite;
    z-index:-1;
}


/* ANIMATIONS */

@keyframes enterpriseScan{
    0%{
        transform:translateX(-100%);
        opacity:0;
    }
    15%{
        opacity:1;
    }
    50%{
        transform:translateX(100%);
        opacity:.75;
    }
    100%{
        transform:translateX(100%);
        opacity:0;
    }
}

@keyframes enterprisePulse{
    0%,100%{
        opacity:.6;
        transform:scale(1);
    }
    50%{
        opacity:1;
        transform:scale(1.025);
    }
}


/* RESPONSIVE */

@media (max-width:1200px){

    .aulopolis-enterprise-section{
        grid-template-columns:1fr;
        padding:54px 32px;
    }

    .enterprise-content{
        max-width:760px;
    }

    .enterprise-content p{
        max-width:650px;
    }
}

@media (max-width:768px){

    .aulopolis-enterprise-section{
        padding:42px 16px;
    }

    .aulopolis-enterprise-section::before,
    .aulopolis-enterprise-section::after{
        inset:12px;
        border-radius:22px;
    }

    .enterprise-dashboard{
        padding:16px;
    }

    .enterprise-metrics{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .enterprise-charts{
        grid-template-columns:1fr;
    }

    .donut-layout{
        grid-template-columns:1fr;
        justify-items:center;
    }

    .donut-legend{
        width:100%;
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (max-width:480px){

    .enterprise-metrics{
        grid-template-columns:1fr;
    }

    .enterprise-btn{
        width:100%;
    }
}

.aulopolis-home-experience .flow-card .flow-shine{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    overflow:hidden;
    border-radius:inherit;
}

.aulopolis-home-experience .flow-card .flow-shine::before{
    content:"";
    position:absolute;
    top:-60%;
    left:-120%;
    width:70%;
    height:220%;

    background:linear-gradient(
        115deg,
        transparent 0%,
        rgba(255,255,255,.00) 25%,
        rgba(255,255,255,.18) 48%,
        rgba(34,211,238,.22) 52%,
        rgba(255,255,255,.08) 58%,
        transparent 78%
    );

    transform:rotate(8deg);
    filter:blur(2px);
    opacity:0;
}

.aulopolis-home-experience .flow-card:hover .flow-shine::before{
    animation:aulopolisFlowShine .6s cubic-bezier(.16,1,.3,1) forwards;
    opacity:1;
}

@keyframes aulopolisFlowShine{
    0%{
        left:-120%;
        opacity:0;
    }

    18%{
        opacity:1;
    }

    100%{
        left:140%;
        opacity:0;
    }
}

/* =========================================
   BOTÓN FLOTANTE AULOPOLIS AI
========================================= */

.aulopolis-floating-ai-btn {
    position: fixed !important;
    right: 28px !important;
    bottom: 28px !important;

    width: auto !important;
    min-width: 170px !important;
    height: 58px !important;

    padding: 0 22px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;

    border: 1px solid rgba(120, 180, 255, 0.55) !important;
    border-radius: 999px !important;

    background: linear-gradient(135deg, #06122b, #0b1f4d, #142f7a) !important;
    color: #ffffff !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 1px !important;

    cursor: pointer !important;

    z-index: 2147483647 !important;

    box-shadow:
        0 0 25px rgba(58, 132, 255, 0.75),
        0 0 60px rgba(92, 225, 255, 0.35),
        inset 0 0 18px rgba(255, 255, 255, 0.08) !important;

    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;

    transform: none !important;
}

.aulopolis-floating-ai-btn:hover {
    transform: translateY(-3px) scale(1.03) !important;
    box-shadow:
        0 0 35px rgba(58, 132, 255, 0.95),
        0 0 90px rgba(92, 225, 255, 0.55) !important;
}

.aulopolis-floating-ai-btn .ai-orb {
    width: 16px !important;
    height: 16px !important;
    border-radius: 50% !important;

    background: radial-gradient(circle, #ffffff 0%, #66eaff 35%, #246bff 70%) !important;

    box-shadow:
        0 0 12px #66eaff,
        0 0 28px #246bff !important;

    animation: aiOrbPulse 1.8s infinite ease-in-out !important;
}

.aulopolis-floating-ai-btn .ai-text {
    position: relative !important;
    z-index: 2 !important;
    white-space: nowrap !important;
}

@keyframes aiOrbPulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.35);
        opacity: .75;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .aulopolis-floating-ai-btn {
        right: 18px !important;
        bottom: 18px !important;
        min-width: 58px !important;
        width: 58px !important;
        height: 58px !important;
        padding: 0 !important;
        border-radius: 50% !important;
    }

    .aulopolis-floating-ai-btn .ai-text {
        display: none !important;
    }
}

.aulo-footer-brand-logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none !important;
    position:relative;
    bottom: 3%;
    right: 0%;
}


.aulo-footer-brand-logo img {
    
    max-width: 100%;
    height: auto;
    object-fit: contain;
    filter:
        drop-shadow(0 0 12px rgba(34, 211, 238, .35))
        drop-shadow(0 0 28px rgba(37, 99, 235, .18));
}

.aulo-footer-brand-logo span {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    letter-spacing: .22em;
}

.aulo-footer-brand-text {
    margin-top: 12px;
    color: #94a3b8;
    font-size: 14px;
    line-height: 1.5;
}


/* =========================================
   HERO TITLE MOBILE — NUEVO
========================================= */

.hero-title-mobile {
    display: none;
}

@media (max-width: 767px) {

    /* Oculta título antiguo en móvil */
    .aulopolis-hero .hero-title {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    /* Nuevo título mobile */
    .aulopolis-hero .hero-title-mobile {
        position: relative !important;
        top:-30px;
        z-index: 80 !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;

        width: 100% !important;
        max-width: 94vw !important;

        margin: 18px auto 14px !important;
        padding: 0 !important;

        text-align: center !important;

        font-weight: 50 !important;
        line-height: .92 !important;
        letter-spacing: -.045em !important;

        text-transform: uppercase !important;
        font-family: auto;

    }

    .aulopolis-hero .hero-title-mobile span,
    .aulopolis-hero .hero-title-mobile strong {
        display: block !important;
        width: 100% !important;

        font-size: clamp(42px, 12.5vw, 64px) !important;
        line-height: .92 !important;

        color: #ffffff !important;

        text-shadow:
            0 0 10px rgba(255,255,255,.72),
            0 0 22px rgba(96,165,250,.42),
            0 0 46px rgba(34,211,238,.24) !important;
    }

    .aulopolis-hero .hero-title-mobile strong {
        background: linear-gradient(
            90deg,
            #67e8f9 0%,
            #60a5fa 42%,
            #a78bfa 100%
        ) !important;

        -webkit-background-clip: text !important;
        -webkit-text-fill-color: transparent !important;

        text-shadow:
            0 0 18px rgba(34,211,238,.38),
            0 0 42px rgba(139,92,246,.28) !important;
    }
}

/* =========================
   TAMAÑO CARDS
========================= */

.route-card {
    position: relative !important;
    overflow: hidden !important;
    width:100%;
    height:350px;
}

.route-image {
    position: absolute !important;

    top: 0 !important;
    left: 0 !important;

    width: 100% !important;
    height: 100% !important;

    overflow: hidden !important;
}

.route-image img {
    position: absolute !important;

    top: 0 !important;
    left: 0 !important;

    width: 100% !important;
    height: 100% !important;

    min-width: 100% !important;
    min-height: 100% !important;

    object-fit: cover !important;
    object-position: center center !important;

    display: block !important;

    transform: scale(1.08) !important;
}

/* ROUTE CARD RESPONSIVE */

/* Mobile */
@media (max-width: 767px) {
    .route-card {
        position: relative !important;
        overflow: hidden !important;
        width: 100% !important;
        height: 260px !important;
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
    .route-card {
        position: relative !important;
        overflow: hidden !important;
        width: 100% !important;
        height: 310px !important;
    }
}

/* Laptop / PC desde 1024 */
@media (min-width: 1024px) and (max-width: 1199px) {
    .route-card {
        position: relative !important;
        overflow: hidden !important;
        width: 100% !important;
        height: 350px !important;
    }
}

/* PC / Laptop grande desde 1200 */
@media (min-width: 1200px) and (max-width: 1439px) {
    .route-card {
        position: relative !important;
        overflow: hidden !important;
        width: 100% !important;
        height: 380px !important;
    }
}

/* Pantallas grandes */
@media (min-width: 1440px) {
    .route-card {
        position: relative !important;
        overflow: hidden !important;
        width: 100% !important;
        height: 420px !important;
    }
}

/* =========================================
   MOBILE UNIVERSE
========================================= */

.aulopolis-mobile-universe{
    display:none;
}

@media (max-width:767px){

    .desktop-routes{
        display:none !important;
    }

    .aulopolis-mobile-universe{

        display:block !important;

        width:100%;

        margin-top:-60px;

        position:relative;

        z-index:100;
    }

    .mobile-routes-slider{

        display:flex;

        gap:12px;

        overflow-x:auto;

        padding:0 20px 10px;

        scroll-snap-type:x mandatory;

        -webkit-overflow-scrolling:touch;

        scrollbar-width:none;
        position: relative;
        top: auto;
    }

    .mobile-routes-slider::-webkit-scrollbar{
        display:none;
    }

    .mobile-route-card{

        flex:0 0 145px;

        width:145px;

        border-radius:24px;

        overflow:hidden;

        scroll-snap-align:center;

        text-decoration:none;

        position:relative;

        background:rgba(255,255,255,.04);

        border:1px solid rgba(34,211,238,.25);

        backdrop-filter:blur(20px);

        box-shadow:
        0 0 25px rgba(34,211,238,.18),
        0 20px 40px rgba(0,0,0,.45);

        transition:.4s;
    }

    .mobile-route-card img{

        width:100%;

        display:block;

        object-fit:cover;
    }

    .mobile-route-card:active{

        transform:scale(.96);
    }
}

/* MÓVIL + TABLET */
@media (max-width: 991px){

    .hero-routes{
        display:none !important;
    }

}

@media (max-width: 767px){

    .hero-routes{
        display:none !important;
    }

}



/* Oculto solo en escritorio */
@media (min-width: 769px) {
  .mobile-routes-slider {
    display: none;
  }
}


/* Oculto por defecto en PC */
.hero-holo-divider {
    display: none !important;
}

/* Visible solo en mobile */
@media (max-width: 768px) {
    .hero-holo-divider {
        display: flex !important;
    }
}
/* =========================================
   HERO HOLOGRAPHIC DIVIDER
========================================= */

.hero-holo-divider {
    position: relative;
    z-index: 20;

    width: 100%;
    max-width: 420px;

    margin: 18px auto 22px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

.hero-holo-divider .holo-line {
    position: relative;

    flex: 1;
    height: 1px;

    background: linear-gradient(
        90deg,
        transparent,
        rgba(34, 211, 238, .85),
        transparent
    );

    box-shadow:
        0 0 10px rgba(34, 211, 238, .7),
        0 0 24px rgba(37, 99, 235, .35);
}

.hero-holo-divider .holo-line::before,
.hero-holo-divider .holo-line::after {
    content: "";
    position: absolute;
    top: 50%;

    width: 5px;
    height: 5px;

    transform: translateY(-50%);

    border-radius: 50%;

    background: #67e8f9;

    box-shadow:
        0 0 8px rgba(103, 232, 249, .95),
        0 0 18px rgba(34, 211, 238, .65);
}

.hero-holo-divider .holo-line:first-child::after {
    right: 0;
}

.hero-holo-divider .holo-line:last-child::before {
    left: 0;
}

.hero-holo-divider .holo-logo {
    position: relative;

    width: 34px;
    height: 34px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background:
        radial-gradient(circle, rgba(34,211,238,.18), transparent 68%);

    filter:
        drop-shadow(0 0 10px rgba(34,211,238,.7))
        drop-shadow(0 0 26px rgba(37,99,235,.35));

    animation: holoLogoFloat 4s ease-in-out infinite;
}

.hero-holo-divider .holo-logo img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.hero-holo-divider::before {
    content: "";
    position: absolute;

    top: -44px;
    left: 50%;

    width: 1px;
    height: 86px;

    transform: translateX(-50%);

    background: linear-gradient(
        180deg,
        transparent,
        rgba(34, 211, 238, .8),
        transparent
    );

    box-shadow:
        0 0 12px rgba(34, 211, 238, .8),
        0 0 32px rgba(37, 99, 235, .4);

    opacity: .75;
}

@keyframes holoLogoFloat {
    0%, 100% {
        transform: translateY(0) scale(1);
    }

    50% {
        transform: translateY(-3px) scale(1.06);
    }
}

/* Mobile */
@media (max-width: 767px) {
    .hero-holo-divider {
        max-width: 300px;
        margin: 10px auto 16px;
        gap: 10px;
        top:-30px;
    }

    .hero-holo-divider .holo-logo {
        width: 28px;
        height: 28px;
    }

    .hero-holo-divider .holo-logo img {
        width: 40px;
        height: 40px;
    }

    .hero-holo-divider::before {
        top: -34px;
        height: 66px;
    }
}




/* ==========================================================================
   1. BASE (Pantallas móviles - Menos de 767px)
   ========================================================================== */
.aulopolis-topnav-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none !important;
    color: #ffffff !important;
    max-width: 60%;
}

img.aulopolis-topnav-logo {
    max-width: 140px;
    height: auto;
}

/* ==========================================================================
   2. TABLETS / PORTÁTILES MEDIANOS (A partir de 767px)
   ========================================================================== */
@media (min-width: 767px) {
    .aulopolis-topnav-brand {
        gap: 12px;
        max-width: 45%;
    }

    img.aulopolis-topnav-logo {
        max-width: 200px;
    }
}

/* ==========================================================================
   3. ESCRITORIOS ESTÁNDAR (A partir de 991px)
   ========================================================================== */
@media (min-width: 991px) {
    .aulopolis-topnav-brand {
        max-width: 40%;
    }

    img.aulopolis-topnav-logo {
        max-width: 250px;
    }
}

/* ==========================================================================
   4. PANTALLAS GRANDES (A partir de 1400px)
   ========================================================================== */
@media (min-width: 1400px) {
    .aulopolis-topnav-brand {
        max-width: 30%;
    }

    img.aulopolis-topnav-logo {
        max-width: 300px;
    }
}

.code-core-cosmos{
    position:relative;
    width:100%;
    min-height:900px;
    overflow:hidden;
    background:
        radial-gradient(circle at 50% 35%, rgba(34,211,238,.12), transparent 35%),
        radial-gradient(circle at 80% 20%, rgba(124,58,237,.16), transparent 32%),
        #02030a;
}

#codeCoreCanvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}

.code-core-content{
    position:relative;
    z-index:5;
    max-width:760px;
    padding:160px 8vw;
    color:#fff;
}

.code-core-content span{
    color:#22d3ee;
    font-weight:900;
    letter-spacing:.24em;
}

.code-core-content h2{
    margin:18px 0;
    font-size:clamp(48px,7vw,110px);
    line-height:.9;
    font-weight:950;
}

.code-core-content p{
    color:#cbd5e1;
    font-size:20px;
}

.code-core-input{
    margin-top:34px;
    display:flex;
    gap:12px;
    max-width:520px;
}

.code-core-input input{
    flex:1;
    height:56px;
    border-radius:18px;
    border:1px solid rgba(34,211,238,.28);
    background:rgba(15,23,42,.72);
    color:#fff;
    padding:0 18px;
}

.code-core-input button{
    border:0;
    border-radius:18px;
    padding:0 24px;
    color:#fff;
    font-weight:900;
    background:linear-gradient(135deg,#22d3ee,#7c3aed);
    box-shadow:0 0 28px rgba(34,211,238,.28);
}

.code-core-suggestions{

    margin-top:24px;

    display:flex;
    flex-wrap:wrap;
    gap:10px;

    max-width:700px;
}

.code-core-suggestions span{

    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:8px 14px;

    border-radius:999px;

    font-size:12px;
    font-weight:800;

    color:#cbd5e1;

    background:
        linear-gradient(
            180deg,
            rgba(15,23,42,.72),
            rgba(2,6,23,.52)
        );

    border:1px solid rgba(34,211,238,.22);

    box-shadow:
        0 0 12px rgba(34,211,238,.08),
        inset 0 0 8px rgba(255,255,255,.03);

    transition:.3s ease;

    cursor:pointer;
}

.code-core-suggestions span:hover{

    color:#ffffff;

    transform:
        translateY(-2px)
        scale(1.05);

    border-color:
        rgba(34,211,238,.72);

    box-shadow:
        0 0 16px rgba(34,211,238,.35),
        0 0 32px rgba(124,58,237,.22);
}

.cyber-core-section{

    position:relative;

    width:100%;
    height:700px;

    overflow:hidden;

    background:
    radial-gradient(
        circle at center,
        #07111f 0%,
        #030712 45%,
        #010409 100%
    );
}

#cyberCoreCanvas{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    z-index:1;
}

.cyber-core-content{

    position:relative;

    z-index:10;

    max-width:1200px;

    margin:auto;

    padding-top:180px;

    text-align:center;
}

.cyber-core-tag{

    display:inline-block;

    padding:12px 20px;

    border-radius:999px;

    color:#67e8f9;

    border:1px solid rgba(103,232,249,.25);

    background:rgba(15,23,42,.55);

    backdrop-filter:blur(12px);
}

.cyber-core-content h2{

    margin-top:25px;

    font-size:72px;

    font-weight:900;

    color:#ffffff;

    text-shadow:
    0 0 30px rgba(34,211,238,.35);
}
@media (max-width: 768px){

    .cyber-core-content h2{
        font-size:43px;
    }

}

.cyber-core-content p{

    max-width:800px;

    margin:20px auto;

    color:#94a3b8;

    font-size:20px;
}

/* =========================================================
   AULÓPOLIS · DATA CORE SECTION
========================================================= */

.data-core-section {
    position: relative;
    overflow: hidden;
    padding: 120px 20px;
    background:
        radial-gradient(circle at 20% 20%, rgba(0, 255, 255, .16), transparent 32%),
        radial-gradient(circle at 80% 50%, rgba(124, 58, 237, .25), transparent 36%),
        linear-gradient(135deg, #030712 0%, #07111f 45%, #020617 100%);
    color: #fff;
}

.data-grid-bg {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(0, 255, 255, .06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 255, 255, .06) 1px, transparent 1px);
    background-size: 70px 70px;
    animation: dataGridMove 18s linear infinite;
    opacity: .5;
}

@keyframes dataGridMove {
    from { transform: translateY(0); }
    to { transform: translateY(70px); }
}

.data-core-container {
    position: relative;
    z-index: 2;
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 60px;
    align-items: center;
}

.data-kicker {
    display: inline-block;
    margin-bottom: 18px;
    padding: 9px 18px;
    border: 1px solid rgba(34, 211, 238, .4);
    border-radius: 999px;
    background: rgba(8, 47, 73, .45);
    color: #67e8f9;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;
}

.data-core-left h2 {
    margin: 0 0 22px;
    font-size: clamp(42px, 7vw, 92px);
    line-height: .9;
    font-weight: 950;
    letter-spacing: -4px;
    background: linear-gradient(90deg, #ffffff, #67e8f9, #a78bfa);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.data-core-left p {
    max-width: 650px;
    color: #cbd5e1;
    font-size: 18px;
    line-height: 1.8;
}

.data-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 38px;
}

.data-metrics div {
    padding: 22px;
    border-radius: 22px;
    background: rgba(15, 23, 42, .72);
    border: 1px solid rgba(34, 211, 238, .22);
    box-shadow: 0 0 35px rgba(34, 211, 238, .08);
}

.data-metrics strong {
    display: block;
    font-size: 32px;
    color: #67e8f9;
    font-weight: 950;
}

.data-metrics span {
    color: #94a3b8;
    font-size: 13px;
}

/* REACTOR */

.data-reactor {
    position: relative;
    width: 420px;
    height: 420px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.data-orbit {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(103, 232, 249, .25);
    box-shadow: 0 0 35px rgba(34, 211, 238, .18);
}

.orbit-one {
    width: 390px;
    height: 390px;
    animation: rotateData 18s linear infinite;
}

.orbit-two {
    width: 300px;
    height: 300px;
    border-color: rgba(167, 139, 250, .35);
    animation: rotateDataReverse 12s linear infinite;
}

.orbit-three {
    width: 210px;
    height: 210px;
    animation: rotateData 8s linear infinite;
}

.data-orbit::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 50%;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #67e8f9;
    box-shadow: 0 0 25px #67e8f9, 0 0 55px #67e8f9;
}

@keyframes rotateData {
    to { transform: rotate(360deg); }
}

@keyframes rotateDataReverse {
    to { transform: rotate(-360deg); }
}

.data-core-orb {
    position: relative;
    width: 155px;
    height: 155px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 35% 30%, #ffffff, #67e8f9 18%, #2563eb 46%, #111827 72%);
    box-shadow:
        0 0 45px rgba(34, 211, 238, .9),
        0 0 110px rgba(37, 99, 235, .8),
        inset 0 0 35px rgba(255, 255, 255, .35);
    animation: dataPulse 3s ease-in-out infinite;
}

.data-core-orb span {
    font-size: 22px;
    font-weight: 950;
    letter-spacing: 2px;
    color: #020617;
}

@keyframes dataPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.06); }
}

.data-bit {
    position: absolute;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .85);
    border: 1px solid rgba(103, 232, 249, .35);
    color: #67e8f9;
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 0 30px rgba(34, 211, 238, .3);
    animation: floatBit 4s ease-in-out infinite;
}

.bit-1 { top: 30px; left: 70px; }
.bit-2 { top: 80px; right: 35px; animation-delay: .8s; }
.bit-3 { bottom: 50px; left: 45px; animation-delay: 1.4s; }
.bit-4 { bottom: 35px; right: 75px; animation-delay: 2s; }

@keyframes floatBit {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-14px); }
}

/* CARDS */

.data-cards {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
    margin-top: 30px;
}

.data-card {
    position: relative;
    overflow: hidden;
    min-height: 230px;
    padding: 30px;
    border-radius: 28px;
    background: rgba(15, 23, 42, .72);
    border: 1px solid rgba(103, 232, 249, .18);
    backdrop-filter: blur(18px);
    box-shadow:
        0 20px 60px rgba(0, 0, 0, .35),
        inset 0 0 25px rgba(255, 255, 255, .03);
    transition: .35s ease;
}

.data-card::before {
    content: "";
    position: absolute;
    inset: -1px;
    background: radial-gradient(circle at top left, rgba(103, 232, 249, .28), transparent 45%);
    opacity: 0;
    transition: .35s ease;
}

.data-card:hover {
    transform: translateY(-12px);
    border-color: rgba(103, 232, 249, .55);
    box-shadow:
        0 25px 80px rgba(34, 211, 238, .18),
        0 0 80px rgba(124, 58, 237, .16);
}

.data-card:hover::before {
    opacity: 1;
}

.data-icon {
    width: 58px;
    height: 58px;
    margin-bottom: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    color: #67e8f9;
    font-size: 30px;
    background: rgba(8, 47, 73, .55);
    border: 1px solid rgba(103, 232, 249, .3);
    box-shadow: 0 0 35px rgba(34, 211, 238, .18);
}

.data-card h3 {
    position: relative;
    margin: 0 0 12px;
    font-size: 22px;
    font-weight: 900;
    color: #ffffff;
}

.data-card p {
    position: relative;
    margin: 0;
    color: #94a3b8;
    line-height: 1.5;
    margin-bottom:30px;
    font-size: 20px;
}

/* RESPONSIVE */

@media (max-width: 991px) {
    .data-core-section {
        padding: 90px 18px;
    }

    .data-core-container {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .data-reactor {
        width: 330px;
        height: 330px;
    }

    .orbit-one {
        width: 320px;
        height: 320px;
    }

    .orbit-two {
        width: 245px;
        height: 245px;
    }

    .orbit-three {
        width: 175px;
        height: 175px;
    }

    .data-cards {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 575px) {
    .data-core-left h2 {
        font-size: 48px;
        letter-spacing: -2px;
    }

    .data-core-left p {
        font-size: 16px;
    }

    .data-metrics {
        grid-template-columns: 1fr;
    }

    .data-reactor {
        width: 290px;
        height: 290px;
    }

    .orbit-one {
        width: 280px;
        height: 280px;
    }

    .orbit-two {
        width: 215px;
        height: 215px;
    }

    .orbit-three {
        width: 155px;
        height: 155px;
    }

    .data-core-orb {
        width: 125px;
        height: 125px;
    }

    .data-cards {
        grid-template-columns: 1fr;
    }
}

.data-live-lab {
    margin-top: 70px;
    padding: 36px;
    border-radius: 32px;
    background: rgba(15, 23, 42, .78);
    border: 1px solid rgba(103, 232, 249, .22);
    box-shadow:
        0 25px 80px rgba(0, 0, 0, .35),
        0 0 80px rgba(34, 211, 238, .08);
    backdrop-filter: blur(18px);
}

.data-live-header span {
    color: #67e8f9;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 2px;
}

.data-live-header h3 {
    margin: 12px 0;
    color: #fff;
    font-size: 34px;
    font-weight: 950;
}

.data-live-header p {
    color: #94a3b8;
    margin-bottom: 28px;
}

.data-input-box {
    display: flex;
    gap: 14px;
    margin-bottom: 30px;
}

.data-input-box input {
    flex: 1;
    height: 54px;
    padding: 0 18px;
    border-radius: 16px;
    border: 1px solid rgba(103, 232, 249, .28);
    background: rgba(2, 6, 23, .82);
    color: #fff;
    outline: none;
    font-size: 15px;
}

.data-input-box input:focus {
    border-color: #67e8f9;
    box-shadow: 0 0 30px rgba(34, 211, 238, .22);
}

.data-input-box button {
    height: 54px;
    padding: 0 24px;
    border: 0;
    border-radius: 16px;
    background: linear-gradient(135deg, #06b6d4, #2563eb);
    color: #fff;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 0 35px rgba(37, 99, 235, .35);
}

.data-chart-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}

.data-chart-card {
    min-height: 330px;
    padding: 24px;
    border-radius: 26px;
    background:
        radial-gradient(circle at top left, rgba(34, 211, 238, .12), transparent 45%),
        rgba(2, 6, 23, .68);
    border: 1px solid rgba(103, 232, 249, .18);
}

.data-chart-card h4 {
    margin: 0 0 20px;
    color: #fff;
    font-size: 18px;
    font-weight: 900;
}

.data-chart-card canvas {
    width: 100%;
    height: 260px;
    display: block;
}

@media (max-width: 768px) {
    .data-live-lab {
        padding: 24px;
    }

    .data-input-box {
        flex-direction: column;
    }

    .data-chart-grid {
        grid-template-columns: 1fr;
    }

    .data-live-header h3 {
        font-size: 26px;
    }
}



.aulo-gamecore {
    position: relative;
    overflow: hidden;
    padding: 120px 20px;
    background:
        radial-gradient(circle at 15% 30%, rgba(168,85,247,.28), transparent 34%),
        radial-gradient(circle at 85% 65%, rgba(34,211,238,.18), transparent 34%),
        linear-gradient(135deg, #020617, #070719 50%, #020617);
    color: #fff;
}

.aulo-gamecore__bg {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(168,85,247,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(34,211,238,.07) 1px, transparent 1px);
    background-size: 80px 80px;
    animation: auloGameGrid 20s linear infinite;
    opacity: .8;
}

@keyframes auloGameGrid {
    to { transform: translateY(80px); }
}

.aulo-gamecore__wrap {
    position: relative;
    z-index: 2;
    max-width: 1280px;
    margin: auto;
    display: grid;
    grid-template-columns: 520px 1fr;
    gap: 70px;
    align-items: center;
}

.aulo-arcade {
    padding: 22px;
    border-radius: 34px 34px 54px 54px;
    background: linear-gradient(145deg, #030303, #18181b);
    border: 2px solid rgba(168,85,247,.5);
    box-shadow:
        0 0 70px rgba(168,85,247,.35),
        inset 0 0 40px rgba(255,255,255,.05);
}

.aulo-arcade__marquee {
    padding: 18px;
    margin-bottom: 18px;
    border-radius: 18px;
    text-align: center;
    background: #07070a;
    color: #f0abfc;
    font-size: 26px;
    font-weight: 950;
    letter-spacing: 2px;
    border: 1px solid rgba(217,70,239,.5);
    text-shadow: 0 0 18px #d946ef;
}

.aulo-arcade__screen {
    padding: 14px;
    border-radius: 24px;
    background: #000;
    border: 8px solid #111827;
    box-shadow:
        inset 0 0 45px rgba(34,211,238,.25),
        0 0 35px rgba(34,211,238,.22);
}

#auloInvadersCanvas {
    width: 100%;
    height: 570px;
    display: block;
    background: radial-gradient(circle at center, #08111f, #000);
}

.aulo-arcade__panel {
    margin-top: 24px;
    height: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    border-radius: 24px;
    background: linear-gradient(145deg, #09090b, #18181b);
    border: 1px solid rgba(168,85,247,.3);
}

.aulo-arcade__panel button {
    width: 58px;
    height: 58px;
    border: 0;
    border-radius: 999px;
    background: radial-gradient(circle, #ef4444, #7f1d1d);
    color: white;
    font-size: 20px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 0 24px rgba(239,68,68,.7);
}

#auloShoot {
    width: 70px;
    height: 70px;
    background: radial-gradient(circle, #22d3ee, #075985);
    box-shadow: 0 0 30px rgba(34,211,238,.8);
}

.aulo-gamecore__content span {
    color: #22d3ee;
    font-weight: 900;
    letter-spacing: 8px;
}

.aulo-gamecore__content h2 {
    margin: 20px 0;
    max-width: 760px;
    font-size: clamp(48px, 7vw, 92px);
    line-height: .9;
    font-weight: 950;
    letter-spacing: -3px;
    text-shadow: 0 0 35px rgba(168,85,247,.8);
}

.aulo-gamecore__content p {
    max-width: 560px;
    color: #cbd5e1;
    font-size: 18px;
    line-height: 1.8;
}

.aulo-gamecore__actions {
    display: flex;
    gap: 16px;
    margin-top: 34px;
    flex-wrap: wrap;
}

.aulo-gamecore__actions button {
    padding: 18px 34px;
    border-radius: 18px;
    border: 1px solid rgba(217,70,239,.75);
    background: rgba(88,28,135,.42);
    color: #fff;
    font-weight: 950;
    letter-spacing: 1px;
    cursor: pointer;
    box-shadow: 0 0 35px rgba(168,85,247,.35);
}

.aulo-gamecore__content small {
    display: block;
    margin-top: 18px;
    color: #94a3b8;
}

@media (max-width: 991px) {
    .aulo-gamecore__wrap {
        grid-template-columns: 1fr;
    }

    .aulo-arcade {
        max-width: 520px;
        margin: auto;
    }
}

@media (max-width: 575px) {
    .aulo-gamecore {
        padding: 80px 14px;
    }

    #auloInvadersCanvas {
        height: 320px;
    }

    .aulo-gamecore__content h2 {
        font-size: 44px;
    }
}

/* =========================================================
   AULÓPOLIS — CORE SOUND
========================================================= */

.aulo-sound-core-section {
    position: relative;
    width: 100%;
    min-height: 780px;
    overflow: hidden;
    padding: 120px 24px;
    background:
        radial-gradient(circle at 18% 20%, rgba(124, 58, 237, .30), transparent 34%),
        radial-gradient(circle at 80% 55%, rgba(34, 211, 238, .22), transparent 36%),
        linear-gradient(135deg, #050816 0%, #070b1d 42%, #031520 100%);
    color: #fff;
}

.aulo-sound-bg-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(34, 211, 238, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(34, 211, 238, .07) 1px, transparent 1px);
    background-size: 80px 80px;
    opacity: .45;
    mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 82%, transparent);
}

.aulo-sound-glow {
    position: absolute;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    filter: blur(70px);
    opacity: .42;
    pointer-events: none;
}

.aulo-sound-glow-one {
    left: -120px;
    top: 120px;
    background: #7c3aed;
}

.aulo-sound-glow-two {
    right: -90px;
    bottom: 80px;
    background: #22d3ee;
}

.aulo-sound-container {
    position: relative;
    z-index: 2;
    width: min(1180px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: .95fr 1.1fr;
    gap: 60px;
    align-items: center;
}

.aulo-sound-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #22d3ee;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: .45em;
    text-transform: uppercase;
    text-shadow: 0 0 18px rgba(34, 211, 238, .75);
}

.aulo-sound-left h2 {
    margin: 24px 0 20px;
    font-size: clamp(46px, 7vw, 88px);
    line-height: .88;
    letter-spacing: -0.07em;
    text-transform: uppercase;
    color: rgba(255,255,255,.94);
}

.aulo-sound-left h2 span {
    display: block;
    color: #a855f7;
    text-shadow:
        0 0 24px rgba(168, 85, 247, .80),
        0 0 54px rgba(34, 211, 238, .25);
}

.aulo-sound-left p {
    max-width: 560px;
    color: #cbd5e1;
    font-size: 20px;
    line-height: 1.65;
}

.aulo-sound-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 36px;
}

.aulo-sound-main-btn,
.aulo-sound-secondary-btn {
    height: 58px;
    padding: 0 32px;
    border-radius: 20px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: .08em;
    border: 1px solid rgba(217, 70, 239, .7);
    color: #fff;
    transition: all .25s ease;
}

.aulo-sound-main-btn {
    background:
        radial-gradient(circle at top, rgba(34, 211, 238, .25), transparent 55%),
        linear-gradient(135deg, #581c87, #312e81);
    box-shadow:
        0 0 24px rgba(168, 85, 247, .45),
        inset 0 0 18px rgba(255,255,255,.08);
}

.aulo-sound-secondary-btn {
    background: rgba(15, 23, 42, .74);
    border-color: rgba(34, 211, 238, .45);
}

.aulo-sound-main-btn:hover,
.aulo-sound-secondary-btn:hover {
    transform: translateY(-3px);
    box-shadow:
        0 0 30px rgba(34, 211, 238, .35),
        0 0 55px rgba(168, 85, 247, .28);
}

.aulo-sound-controls {
    margin-top: 32px;
    display: grid;
    grid-template-columns: 1fr 180px;
    gap: 18px;
    max-width: 540px;
}

.aulo-sound-controls label {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    border-radius: 20px;
    background: rgba(2, 6, 23, .64);
    border: 1px solid rgba(148, 163, 184, .18);
    color: #94a3b8;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .14em;
}

.aulo-sound-controls input {
    width: 100%;
}

.aulo-sound-controls strong {
    color: #22d3ee;
    font-size: 16px;
}

.aulo-sound-controls select {
    height: 38px;
    border: 1px solid rgba(34, 211, 238, .34);
    border-radius: 12px;
    background: #020617;
    color: #e0faff;
    font-weight: 800;
    padding: 0 10px;
    outline: none;
}

/* CONSOLA */

.aulo-sound-console {
    position: relative;
    padding: 28px;
    border-radius: 34px;
    background:
        linear-gradient(145deg, rgba(2, 6, 23, .92), rgba(15, 23, 42, .76)),
        radial-gradient(circle at top left, rgba(124, 58, 237, .25), transparent 45%);
    border: 1px solid rgba(168, 85, 247, .48);
    box-shadow:
        0 0 55px rgba(124, 58, 237, .30),
        0 0 95px rgba(34, 211, 238, .12),
        inset 0 0 35px rgba(255,255,255,.04);
    overflow: hidden;
}

.aulo-sound-console::before {
    content: "";
    position: absolute;
    inset: 18px;
    border-radius: 28px;
    border: 1px solid rgba(34, 211, 238, .12);
    pointer-events: none;
}

.aulo-sound-console-top {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 26px;
}

.aulo-sound-console-top span {
    display: block;
    color: #94a3b8;
    font-size: 11px;
    letter-spacing: .24em;
    font-weight: 900;
}

.aulo-sound-console-top strong {
    display: block;
    margin-top: 4px;
    color: #f0abfc;
    font-size: 25px;
    letter-spacing: .08em;
    text-shadow: 0 0 18px rgba(217, 70, 239, .75);
}

.aulo-sound-status {
    padding: 9px 14px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .8);
    border: 1px solid rgba(34, 211, 238, .35);
    color: #22d3ee;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .16em;
}

/* VISUALIZER */

.aulo-sound-visualizer {
    position: relative;
    z-index: 2;
    height: 150px;
    display: flex;
    align-items: flex-end;
    gap: 10px;
    padding: 18px;
    margin-bottom: 24px;
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(2, 6, 23, .95), rgba(15, 23, 42, .82));
    border: 1px solid rgba(34, 211, 238, .18);
    box-shadow: inset 0 0 30px rgba(34, 211, 238, .08);
}

.aulo-sound-visualizer span {
    flex: 1;
    height: 22%;
    min-height: 14px;
    border-radius: 999px 999px 6px 6px;
    background: linear-gradient(180deg, #22d3ee, #7c3aed);
    box-shadow:
        0 0 16px rgba(34, 211, 238, .55),
        0 0 30px rgba(124, 58, 237, .25);
    transition: height .12s ease;
}

.aulo-sound-visualizer.playing span:nth-child(1) { animation: auloBars .45s infinite alternate; }
.aulo-sound-visualizer.playing span:nth-child(2) { animation: auloBars .62s infinite alternate; }
.aulo-sound-visualizer.playing span:nth-child(3) { animation: auloBars .38s infinite alternate; }
.aulo-sound-visualizer.playing span:nth-child(4) { animation: auloBars .75s infinite alternate; }
.aulo-sound-visualizer.playing span:nth-child(5) { animation: auloBars .52s infinite alternate; }
.aulo-sound-visualizer.playing span:nth-child(6) { animation: auloBars .68s infinite alternate; }
.aulo-sound-visualizer.playing span:nth-child(7) { animation: auloBars .44s infinite alternate; }
.aulo-sound-visualizer.playing span:nth-child(8) { animation: auloBars .70s infinite alternate; }
.aulo-sound-visualizer.playing span:nth-child(9) { animation: auloBars .49s infinite alternate; }
.aulo-sound-visualizer.playing span:nth-child(10) { animation: auloBars .59s infinite alternate; }

@keyframes auloBars {
    from { height: 18%; }
    to { height: 95%; }
}

/* PADS */

.aulo-sound-pad-title {
    position: relative;
    z-index: 2;
    margin: 20px 0 12px;
    color: #a5b4fc;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .24em;
}

.aulo-sound-pads {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.aulo-sound-pads button {
    height: 68px;
    border-radius: 18px;
    border: 1px solid rgba(34, 211, 238, .32);
    background:
        radial-gradient(circle at top, rgba(34, 211, 238, .20), transparent 55%),
        rgba(15, 23, 42, .86);
    color: #e0faff;
    font-size: 16px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: inset 0 0 20px rgba(34, 211, 238, .08);
    transition: all .18s ease;
}

.aulo-sound-pads button:hover,
.aulo-sound-pads button.active {
    transform: translateY(-3px) scale(1.03);
    border-color: #22d3ee;
    color: #fff;
    background:
        radial-gradient(circle at top, rgba(34, 211, 238, .38), transparent 58%),
        rgba(88, 28, 135, .82);
    box-shadow:
        0 0 22px rgba(34, 211, 238, .42),
        0 0 42px rgba(168, 85, 247, .22);
}

/* SEQUENCER */

.aulo-sound-sequencer {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 10px;
}

.aulo-sound-sequencer button {
    height: 48px;
    border-radius: 14px;
    background: rgba(15, 23, 42, .88);
    border: 1px solid rgba(148, 163, 184, .18);
    cursor: pointer;
    transition: all .16s ease;
}

.aulo-sound-sequencer button.active {
    background: linear-gradient(180deg, #22d3ee, #7c3aed);
    border-color: rgba(255,255,255,.6);
    box-shadow:
        0 0 18px rgba(34, 211, 238, .55),
        0 0 36px rgba(124, 58, 237, .35);
}

.aulo-sound-sequencer button.current {
    transform: translateY(-5px);
    outline: 2px solid #facc15;
    box-shadow:
        0 0 22px rgba(250, 204, 21, .55),
        0 0 44px rgba(34, 211, 238, .25);
}

.aulo-sound-bottom-actions {
    position: relative;
    z-index: 2;
    display: flex;
    gap: 14px;
    margin-top: 22px;
}

.aulo-sound-bottom-actions button {
    flex: 1;
    height: 48px;
    border-radius: 16px;
    border: 1px solid rgba(168, 85, 247, .45);
    background: rgba(2, 6, 23, .72);
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .10em;
    transition: all .2s ease;
}

.aulo-sound-bottom-actions button:hover {
    border-color: #22d3ee;
    box-shadow: 0 0 24px rgba(34, 211, 238, .28);
}

/* RESPONSIVE */

@media (max-width: 992px) {
    .aulo-sound-container {
        grid-template-columns: 1fr;
    }

    .aulo-sound-left {
        text-align: center;
    }

    .aulo-sound-left p,
    .aulo-sound-controls {
        margin-left: auto;
        margin-right: auto;
    }

    .aulo-sound-actions {
        justify-content: center;
    }
}

@media (max-width: 576px) {
    .aulo-sound-core-section {
        padding: 80px 16px;
    }

    .aulo-sound-left h2 {
        font-size: 44px;
    }

    .aulo-sound-left p {
        font-size: 16px;
    }

    .aulo-sound-controls {
        grid-template-columns: 1fr;
    }

    .aulo-sound-console {
        padding: 20px;
        border-radius: 26px;
    }

    .aulo-sound-pads {
        grid-template-columns: repeat(2, 1fr);
    }

    .aulo-sound-sequencer {
        grid-template-columns: repeat(4, 1fr);
    }

    .aulo-sound-bottom-actions {
        flex-direction: column;
    }
}

/* =========================================================
   AULÓPOLIS — CORE 3D
========================================================= */

.aulo-core3d-section {
    position: relative;
    width: 100%;
    min-height: 860px;
    padding: 120px 24px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 18% 22%, rgba(124, 58, 237, .32), transparent 34%),
        radial-gradient(circle at 78% 55%, rgba(34, 211, 238, .22), transparent 36%),
        linear-gradient(135deg, #050816 0%, #070b1d 48%, #031520 100%);
}

.aulo-core3d-bg-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(34, 211, 238, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(34, 211, 238, .07) 1px, transparent 1px);
    background-size: 82px 82px;
    opacity: .42;
    mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 84%, transparent);
}

.aulo-core3d-orb {
    position: absolute;
    width: 430px;
    height: 430px;
    border-radius: 999px;
    filter: blur(75px);
    opacity: .42;
    pointer-events: none;
}

.aulo-core3d-orb-one {
    left: -140px;
    top: 90px;
    background: #7c3aed;
}

.aulo-core3d-orb-two {
    right: -120px;
    bottom: 120px;
    background: #22d3ee;
}

.aulo-core3d-container {
    position: relative;
    z-index: 2;
    width: min(1240px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: .85fr 1.35fr;
    gap: 58px;
    align-items: center;
}

.aulo-core3d-kicker {
    display: inline-flex;
    align-items: center;
    color: #22d3ee;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: .45em;
    text-transform: uppercase;
    text-shadow: 0 0 18px rgba(34, 211, 238, .75);
}

.aulo-core3d-copy h2 {
    margin: 24px 0 22px;
    font-size: clamp(46px, 7vw, 88px);
    line-height: .9;
    letter-spacing: -0.07em;
    text-transform: uppercase;
}

.aulo-core3d-copy h2 span {
    display: block;
    color: #a855f7;
    text-shadow:
        0 0 26px rgba(168, 85, 247, .82),
        0 0 58px rgba(34, 211, 238, .24);
}

.aulo-core3d-copy p {
    max-width: 540px;
    color: #cbd5e1;
    font-size: 20px;
    line-height: 1.65;
}

.aulo-core3d-mini-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 34px;
    max-width: 520px;
}

.aulo-core3d-mini-stats div {
    padding: 18px 16px;
    border-radius: 22px;
    background: rgba(2, 6, 23, .62);
    border: 1px solid rgba(34, 211, 238, .18);
    box-shadow: inset 0 0 20px rgba(255,255,255,.03);
}

.aulo-core3d-mini-stats strong {
    display: block;
    color: #22d3ee;
    font-size: 25px;
    font-weight: 900;
    text-shadow: 0 0 16px rgba(34, 211, 238, .7);
}

.aulo-core3d-mini-stats span {
    display: block;
    margin-top: 4px;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* LAB */

.aulo-core3d-lab {
    display: grid;
    grid-template-columns: 1.3fr .8fr;
    gap: 22px;
    align-items: stretch;
}

.aulo-core3d-viewer,
.aulo-core3d-panel {
    position: relative;
    border-radius: 34px;
    background:
        linear-gradient(145deg, rgba(2, 6, 23, .93), rgba(15, 23, 42, .78)),
        radial-gradient(circle at top left, rgba(124, 58, 237, .22), transparent 48%);
    border: 1px solid rgba(168, 85, 247, .48);
    box-shadow:
        0 0 55px rgba(124, 58, 237, .30),
        0 0 95px rgba(34, 211, 238, .12),
        inset 0 0 34px rgba(255,255,255,.04);
    overflow: hidden;
}

.aulo-core3d-viewer {
    min-height: 620px;
    padding: 24px;
}

.aulo-core3d-viewer::before,
.aulo-core3d-panel::before {
    content: "";
    position: absolute;
    inset: 16px;
    border-radius: 28px;
    border: 1px solid rgba(34, 211, 238, .12);
    pointer-events: none;
}

.aulo-core3d-viewer-top,
.aulo-core3d-viewer-bottom {
    position: relative;
    z-index: 3;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
}

.aulo-core3d-viewer-top span,
.aulo-core3d-viewer-bottom span {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.aulo-core3d-viewer-top strong {
    color: #22d3ee;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .16em;
    text-shadow: 0 0 16px rgba(34, 211, 238, .75);
}

.aulo-core3d-canvas-wrap {
    position: relative;
    z-index: 2;
    height: 500px;
    margin: 22px 0;
    border-radius: 28px;
    overflow: hidden;
    background:
        radial-gradient(circle at center, rgba(34, 211, 238, .12), transparent 38%),
        linear-gradient(180deg, rgba(2, 6, 23, .96), rgba(3, 7, 18, .88));
    border: 1px solid rgba(34, 211, 238, .18);
    box-shadow:
        inset 0 0 45px rgba(34, 211, 238, .08),
        0 0 35px rgba(34, 211, 238, .09);
}

#auloCore3DCanvas {
    display: block;
    width: 100%;
    height: 100%;
}

/* PANEL */

.aulo-core3d-panel {
    min-height: 620px;
    padding: 26px;
}

.aulo-core3d-panel-head {
    position: relative;
    z-index: 2;
    margin-bottom: 24px;
}

.aulo-core3d-panel-head span {
    display: block;
    color: #22d3ee;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .24em;
}

.aulo-core3d-panel-head strong {
    display: block;
    margin-top: 6px;
    color: #f0abfc;
    font-size: 24px;
    letter-spacing: .03em;
    text-shadow: 0 0 18px rgba(217, 70, 239, .72);
}

.aulo-core3d-panel label {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
    padding: 15px;
    border-radius: 20px;
    background: rgba(2, 6, 23, .62);
    border: 1px solid rgba(148, 163, 184, .16);
    color: #94a3b8;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.aulo-core3d-panel select,
.aulo-core3d-panel input[type="color"] {
    height: 42px;
    border: 1px solid rgba(34, 211, 238, .34);
    border-radius: 14px;
    background: #020617;
    color: #e0faff;
    font-weight: 800;
    padding: 0 10px;
    outline: none;
}

.aulo-core3d-panel input[type="range"] {
    width: 100%;
}

.aulo-core3d-buttons {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 12px;
    margin-top: 22px;
}

.aulo-core3d-buttons button {
    height: 50px;
    border-radius: 16px;
    border: 1px solid rgba(168, 85, 247, .50);
    background:
        radial-gradient(circle at top, rgba(34, 211, 238, .16), transparent 58%),
        rgba(2, 6, 23, .74);
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    transition: all .22s ease;
}

.aulo-core3d-buttons button:hover {
    transform: translateY(-2px);
    border-color: #22d3ee;
    box-shadow:
        0 0 22px rgba(34, 211, 238, .32),
        0 0 44px rgba(168, 85, 247, .22);
}

/* RESPONSIVE */

@media (max-width: 1180px) {
    .aulo-core3d-container {
        grid-template-columns: 1fr;
    }

    .aulo-core3d-copy {
        text-align: center;
    }

    .aulo-core3d-copy p,
    .aulo-core3d-mini-stats {
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 900px) {
    .aulo-core3d-lab {
        grid-template-columns: 1fr;
    }

    .aulo-core3d-viewer,
    .aulo-core3d-panel {
        min-height: auto;
    }

    .aulo-core3d-canvas-wrap {
        height: 430px;
    }
}

@media (max-width: 576px) {
    .aulo-core3d-section {
        padding: 80px 16px;
    }

    .aulo-core3d-copy h2 {
        font-size: 42px;
    }

    .aulo-core3d-copy p {
        font-size: 16px;
    }

    .aulo-core3d-mini-stats {
        grid-template-columns: 1fr;
    }

    .aulo-core3d-viewer,
    .aulo-core3d-panel {
        padding: 20px;
        border-radius: 26px;
    }

    .aulo-core3d-canvas-wrap {
        height: 340px;
    }

    .aulo-core3d-viewer-top,
    .aulo-core3d-viewer-bottom {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* =========================================================
   AULÓPOLIS — CREATOR CORE VIDEO EDITOR
========================================================= */

.aulo-creator-core-section {
    position: relative;
    width: 100%;
    min-height: 920px;
    padding: 120px 24px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 18% 20%, rgba(236, 72, 153, .28), transparent 34%),
        radial-gradient(circle at 78% 58%, rgba(34, 211, 238, .22), transparent 36%),
        linear-gradient(135deg, #050816 0%, #080b1f 46%, #031520 100%);
}

.aulo-creator-bg-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(34, 211, 238, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(34, 211, 238, .07) 1px, transparent 1px);
    background-size: 82px 82px;
    opacity: .42;
    mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 84%, transparent);
}

.aulo-creator-glow {
    position: absolute;
    width: 430px;
    height: 430px;
    border-radius: 999px;
    filter: blur(78px);
    opacity: .42;
    pointer-events: none;
}

.aulo-creator-glow-one {
    left: -130px;
    top: 90px;
    background: #ec4899;
}

.aulo-creator-glow-two {
    right: -120px;
    bottom: 100px;
    background: #22d3ee;
}

.aulo-creator-container {
    position: relative;
    z-index: 2;
    width: min(1180px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 54px;
    align-items: center;
}

.aulo-creator-kicker {
    display: inline-flex;
    color: #22d3ee;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: .42em;
    text-transform: uppercase;
    text-shadow: 0 0 18px rgba(34, 211, 238, .75);
}

.aulo-creator-copy h2 {
    margin: 24px 0 22px;
    font-size: clamp(44px, 7vw, 84px);
    line-height: .9;
    letter-spacing: -0.07em;
    text-transform: uppercase;
}

.aulo-creator-copy h2 span {
    display: block;
    color: #ec4899;
    text-shadow:
        0 0 26px rgba(236, 72, 153, .82),
        0 0 58px rgba(34, 211, 238, .22);
}

.aulo-creator-copy p {
    max-width: 540px;
    color: #cbd5e1;
    font-size: 20px;
    line-height: 1.65;
}

.aulo-creator-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 34px;
    max-width: 520px;
}

.aulo-creator-stats div {
    padding: 18px 16px;
    border-radius: 22px;
    background: rgba(2, 6, 23, .62);
    border: 1px solid rgba(34, 211, 238, .18);
    box-shadow: inset 0 0 20px rgba(255,255,255,.03);
}

.aulo-creator-stats strong {
    display: block;
    color: #22d3ee;
    font-size: 22px;
    font-weight: 900;
    text-shadow: 0 0 16px rgba(34, 211, 238, .7);
}

.aulo-creator-stats span {
    display: block;
    margin-top: 4px;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* EDITOR */

.aulo-video-editor {
    position: relative;
    border-radius: 36px;
    padding: 24px;
    background:
        linear-gradient(145deg, rgba(2, 6, 23, .94), rgba(15, 23, 42, .80)),
        radial-gradient(circle at top left, rgba(236, 72, 153, .20), transparent 45%);
    border: 1px solid rgba(236, 72, 153, .42);
    box-shadow:
        0 0 60px rgba(236, 72, 153, .25),
        0 0 95px rgba(34, 211, 238, .12),
        inset 0 0 34px rgba(255,255,255,.04);
    overflow: hidden;
}

.aulo-video-editor::before {
    content: "";
    position: absolute;
    inset: 16px;
    border-radius: 30px;
    border: 1px solid rgba(34, 211, 238, .12);
    pointer-events: none;
}

.aulo-editor-topbar {
    position: relative;
    z-index: 3;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 22px;
}

.aulo-editor-topbar span {
    display: block;
    color: #94a3b8;
    font-size: 11px;
    letter-spacing: .24em;
    font-weight: 900;
}

.aulo-editor-topbar strong {
    display: block;
    margin-top: 5px;
    color: #f9a8d4;
    font-size: 25px;
    letter-spacing: .08em;
    text-shadow: 0 0 18px rgba(236, 72, 153, .75);
}

.aulo-editor-status {
    padding: 9px 14px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .8);
    border: 1px solid rgba(34, 211, 238, .35);
    color: #22d3ee;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .16em;
}

.aulo-editor-main {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: 20px;
}

.aulo-editor-preview {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.aulo-video-screen {
    position: relative;
    height: 420px;
    border-radius: 28px;
    overflow: hidden;
    background:
        radial-gradient(circle at center, rgba(34, 211, 238, .12), transparent 38%),
        linear-gradient(180deg, rgba(2, 6, 23, .96), rgba(3, 7, 18, .88));
    border: 1px solid rgba(34, 211, 238, .18);
    box-shadow:
        inset 0 0 45px rgba(34, 211, 238, .08),
        0 0 35px rgba(34, 211, 238, .09);
}

#auloEditorVideo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0;
    transition: filter .22s ease, opacity .3s ease;
}

#auloEditorVideo.loaded {
    opacity: 1;
}

.aulo-video-placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 10px;
    text-align: center;
    color: #e0faff;
    background:
        radial-gradient(circle at center, rgba(236, 72, 153, .14), transparent 40%),
        repeating-linear-gradient(
            0deg,
            rgba(255,255,255,.03) 0px,
            rgba(255,255,255,.03) 1px,
            transparent 1px,
            transparent 5px
        );
}

.aulo-video-placeholder.hidden {
    display: none;
}

.aulo-video-placeholder span {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(34, 211, 238, .12);
    border: 1px solid rgba(34, 211, 238, .38);
    font-size: 28px;
    box-shadow:
        0 0 28px rgba(34, 211, 238, .35),
        inset 0 0 24px rgba(255,255,255,.06);
}

.aulo-video-placeholder strong {
    font-size: 18px;
    letter-spacing: .18em;
}

.aulo-video-placeholder small {
    color: #94a3b8;
    font-weight: 700;
    letter-spacing: .1em;
}

.aulo-video-overlay-text {
    position: absolute;
    left: 50%;
    bottom: 48px;
    transform: translateX(-50%);
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(2, 6, 23, .62);
    border: 1px solid rgba(34, 211, 238, .35);
    color: #fff;
    font-size: clamp(16px, 2vw, 24px);
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-align: center;
    max-width: 86%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-shadow:
        0 0 12px rgba(34, 211, 238, .8),
        0 0 24px rgba(236, 72, 153, .55);
    pointer-events: none;
}

.aulo-video-rec-dot {
    position: absolute;
    top: 18px;
    right: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(2, 6, 23, .7);
    border: 1px solid rgba(236, 72, 153, .35);
    color: #f9a8d4;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .14em;
}

.aulo-video-rec-dot i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fb7185;
    box-shadow: 0 0 14px rgba(251, 113, 133, .9);
}

/* TIMELINE */

.aulo-editor-timeline {
    padding: 18px;
    border-radius: 24px;
    background: rgba(2, 6, 23, .72);
    border: 1px solid rgba(34, 211, 238, .16);
}

.aulo-timeline-head {
    display: flex;
    justify-content: space-between;
    margin-bottom: 14px;
}

.aulo-timeline-head span {
    color: #a5b4fc;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .2em;
}

.aulo-timeline-head strong {
    color: #22d3ee;
    font-size: 12px;
    letter-spacing: .12em;
}

.aulo-timeline-track {
    position: relative;
    height: 84px;
    display: grid;
    grid-template-columns: .7fr 1.4fr .55fr .8fr .65fr;
    gap: 8px;
    padding: 12px;
    border-radius: 18px;
    background:
        repeating-linear-gradient(
            90deg,
            rgba(255,255,255,.04) 0px,
            rgba(255,255,255,.04) 1px,
            transparent 1px,
            transparent 28px
        ),
        rgba(15, 23, 42, .82);
    overflow: hidden;
}

.aulo-timeline-progress {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 0%;
    background: linear-gradient(90deg, rgba(34, 211, 238, .18), transparent);
    border-right: 2px solid #22d3ee;
    box-shadow: 0 0 18px rgba(34, 211, 238, .65);
    z-index: 1;
    pointer-events: none;
}

.aulo-clip {
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .13em;
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: inset 0 0 18px rgba(255,255,255,.05);
}

.clip-intro {
    background: linear-gradient(135deg, rgba(34, 211, 238, .32), rgba(59, 130, 246, .22));
}

.clip-main {
    background: linear-gradient(135deg, rgba(168, 85, 247, .32), rgba(236, 72, 153, .22));
}

.clip-fx {
    background: linear-gradient(135deg, rgba(250, 204, 21, .34), rgba(249, 115, 22, .22));
}

.clip-text {
    background: linear-gradient(135deg, rgba(74, 222, 128, .32), rgba(34, 211, 238, .22));
}

.clip-outro {
    background: linear-gradient(135deg, rgba(248, 113, 113, .32), rgba(236, 72, 153, .22));
}

/* PANEL */

.aulo-editor-panel {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.aulo-panel-block {
    padding: 16px;
    border-radius: 22px;
    background: rgba(2, 6, 23, .64);
    border: 1px solid rgba(148, 163, 184, .16);
}

.aulo-panel-title {
    display: block;
    margin-bottom: 12px;
    color: #22d3ee;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .22em;
}

.aulo-upload-btn {
    position: relative;
    display: grid;
    place-items: center;
    height: 48px;
    border-radius: 16px;
    background:
        radial-gradient(circle at top, rgba(34, 211, 238, .16), transparent 58%),
        rgba(15, 23, 42, .88);
    border: 1px solid rgba(34, 211, 238, .35);
    color: #e0faff;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    cursor: pointer;
    overflow: hidden;
}

.aulo-upload-btn input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.aulo-panel-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.aulo-panel-buttons button,
.aulo-export-btn {
    height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(168, 85, 247, .45);
    background: rgba(15, 23, 42, .86);
    color: #fff;
    cursor: pointer;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .10em;
    transition: all .2s ease;
}

.aulo-panel-buttons button:hover,
.aulo-export-btn:hover,
.aulo-upload-btn:hover {
    transform: translateY(-2px);
    border-color: #22d3ee;
    box-shadow:
        0 0 20px rgba(34, 211, 238, .32),
        0 0 38px rgba(236, 72, 153, .18);
}

.aulo-panel-block select,
.aulo-panel-block input[type="text"] {
    width: 100%;
    height: 42px;
    border: 1px solid rgba(34, 211, 238, .34);
    border-radius: 14px;
    background: #020617;
    color: #e0faff;
    font-weight: 800;
    padding: 0 12px;
    outline: none;
}

.aulo-panel-block label {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
    color: #94a3b8;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.aulo-panel-block label:last-child {
    margin-bottom: 0;
}

.aulo-panel-block input[type="range"] {
    width: 100%;
}

.aulo-export-btn {
    height: 52px;
    background:
        radial-gradient(circle at top, rgba(236, 72, 153, .18), transparent 58%),
        linear-gradient(135deg, #581c87, #0f172a);
    border-color: rgba(236, 72, 153, .55);
}

.aulo-export-btn.exporting {
    color: #facc15;
    border-color: rgba(250, 204, 21, .75);
    box-shadow:
        0 0 24px rgba(250, 204, 21, .38),
        0 0 50px rgba(236, 72, 153, .18);
}

/* RESPONSIVE */

@media (max-width: 1180px) {
    .aulo-creator-container {
        grid-template-columns: 1fr;
    }

    .aulo-creator-copy {
        text-align: center;
    }

    .aulo-creator-copy p,
    .aulo-creator-stats {
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 900px) {
    .aulo-editor-main {
        grid-template-columns: 1fr;
    }

    .aulo-video-screen {
        height: 360px;
    }
}

@media (max-width: 576px) {
    .aulo-creator-core-section {
        padding: 80px 16px;
    }

    .aulo-creator-copy h2 {
        font-size: 42px;
    }

    .aulo-creator-copy p {
        font-size: 16px;
    }

    .aulo-creator-stats {
        grid-template-columns: 1fr;
    }

    .aulo-video-editor {
        padding: 20px;
        border-radius: 28px;
    }

    .aulo-editor-topbar {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }

    .aulo-video-screen {
        height: 290px;
    }

    .aulo-timeline-track {
        grid-template-columns: 1fr;
        height: auto;
    }

    .aulo-clip {
        min-height: 36px;
    }

    .aulo-panel-buttons {
        grid-template-columns: 1fr;
    }

    .aulo-video-overlay-text {
        bottom: 32px;
        font-size: 14px;
    }
}

/* =========================================================
   AULÓPOLIS — IA CORE IMAGE GENERATOR
========================================================= */

.aulo-ai-core-section {
    position: relative;
    width: 100%;
    min-height: 980px;
    padding: 120px 24px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 18% 20%, rgba(124, 58, 237, .34), transparent 34%),
        radial-gradient(circle at 78% 58%, rgba(34, 211, 238, .24), transparent 36%),
        linear-gradient(135deg, #050816 0%, #070b1d 46%, #031520 100%);
}

.aulo-ai-bg-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(34, 211, 238, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(34, 211, 238, .07) 1px, transparent 1px);
    background-size: 82px 82px;
    opacity: .42;
    mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 84%, transparent);
}

.aulo-ai-orb {
    position: absolute;
    width: 460px;
    height: 460px;
    border-radius: 999px;
    filter: blur(82px);
    opacity: .44;
    pointer-events: none;
}

.aulo-ai-orb-one {
    left: -140px;
    top: 90px;
    background: #7c3aed;
}

.aulo-ai-orb-two {
    right: -130px;
    bottom: 90px;
    background: #22d3ee;
}

.aulo-ai-container {
    position: relative;
    z-index: 2;
    width: min(1220px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 56px;
}

.aulo-ai-copy {
    text-align: center;
    max-width: 960px;
    margin: 0 auto;
}

.aulo-ai-kicker {
    display: inline-flex;
    color: #22d3ee;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: .45em;
    text-transform: uppercase;
    text-shadow: 0 0 18px rgba(34, 211, 238, .75);
}

.aulo-ai-copy h2 {
    margin: 24px auto 22px;
    max-width: 1050px;
    font-size: clamp(44px, 7vw, 86px);
    line-height: .9;
    letter-spacing: -0.07em;
    text-transform: uppercase;
}

.aulo-ai-copy h2 span {
    display: block;
    color: #a855f7;
    text-shadow:
        0 0 26px rgba(168, 85, 247, .82),
        0 0 58px rgba(34, 211, 238, .24);
}

.aulo-ai-copy p {
    max-width: 760px;
    margin: 0 auto;
    color: #cbd5e1;
    font-size: 20px;
    line-height: 1.65;
}

.aulo-ai-prompt-chips {
    margin-top: 34px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}

.aulo-ai-prompt-chips button {
    min-height: 44px;
    padding: 0 18px;
    border-radius: 999px;
    border: 1px solid rgba(34, 211, 238, .35);
    background: rgba(2, 6, 23, .64);
    color: #e0faff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: all .22s ease;
}

.aulo-ai-prompt-chips button:hover {
    transform: translateY(-2px);
    border-color: #22d3ee;
    box-shadow:
        0 0 22px rgba(34, 211, 238, .32),
        0 0 44px rgba(168, 85, 247, .22);
}

/* GENERATOR */

.aulo-ai-generator {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 24px;
    align-items: stretch;
}

.aulo-ai-panel,
.aulo-ai-results {
    position: relative;
    border-radius: 36px;
    background:
        linear-gradient(145deg, rgba(2, 6, 23, .94), rgba(15, 23, 42, .80)),
        radial-gradient(circle at top left, rgba(124, 58, 237, .22), transparent 45%);
    border: 1px solid rgba(168, 85, 247, .46);
    box-shadow:
        0 0 60px rgba(124, 58, 237, .28),
        0 0 95px rgba(34, 211, 238, .12),
        inset 0 0 34px rgba(255,255,255,.04);
    overflow: hidden;
}

.aulo-ai-panel::before,
.aulo-ai-results::before {
    content: "";
    position: absolute;
    inset: 16px;
    border-radius: 30px;
    border: 1px solid rgba(34, 211, 238, .12);
    pointer-events: none;
}

.aulo-ai-panel {
    padding: 28px;
}

.aulo-ai-panel-head {
    position: relative;
    z-index: 2;
    margin-bottom: 24px;
}

.aulo-ai-panel-head span {
    display: block;
    color: #94a3b8;
    font-size: 11px;
    letter-spacing: .24em;
    font-weight: 900;
}

.aulo-ai-panel-head strong {
    display: block;
    margin-top: 6px;
    color: #f0abfc;
    font-size: 25px;
    letter-spacing: .08em;
    text-shadow: 0 0 18px rgba(217, 70, 239, .75);
}

.aulo-ai-panel label {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
    padding: 15px;
    border-radius: 20px;
    background: rgba(2, 6, 23, .62);
    border: 1px solid rgba(148, 163, 184, .16);
    color: #94a3b8;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.aulo-ai-panel textarea {
    width: 100%;
    min-height: 130px;
    resize: vertical;
    border: 1px solid rgba(34, 211, 238, .34);
    border-radius: 16px;
    background: #020617;
    color: #e0faff;
    padding: 14px;
    outline: none;
    font-size: 14px;
    line-height: 1.5;
}

.aulo-ai-panel textarea::placeholder {
    color: #64748b;
}

.aulo-ai-controls {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.aulo-ai-controls label {
    margin-bottom: 0;
}

.aulo-ai-panel select {
    height: 42px;
    border: 1px solid rgba(34, 211, 238, .34);
    border-radius: 14px;
    background: #020617;
    color: #e0faff;
    font-weight: 800;
    padding: 0 10px;
    outline: none;
}

.aulo-ai-actions {
    position: relative;
    z-index: 2;
    display: flex;
    gap: 14px;
    margin-top: 22px;
}

.aulo-ai-main-btn,
.aulo-ai-secondary-btn {
    height: 54px;
    border-radius: 18px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .11em;
    color: #fff;
    transition: all .22s ease;
}

.aulo-ai-main-btn {
    flex: 1.25;
    border: 1px solid rgba(217, 70, 239, .7);
    background:
        radial-gradient(circle at top, rgba(34, 211, 238, .20), transparent 58%),
        linear-gradient(135deg, #581c87, #312e81);
    box-shadow:
        0 0 24px rgba(168, 85, 247, .45),
        inset 0 0 18px rgba(255,255,255,.08);
}

.aulo-ai-secondary-btn {
    flex: .85;
    border: 1px solid rgba(34, 211, 238, .40);
    background: rgba(15, 23, 42, .78);
}

.aulo-ai-main-btn:hover,
.aulo-ai-secondary-btn:hover {
    transform: translateY(-3px);
    border-color: #22d3ee;
    box-shadow:
        0 0 30px rgba(34, 211, 238, .35),
        0 0 55px rgba(168, 85, 247, .28);
}

.aulo-ai-status {
    position: relative;
    z-index: 2;
    margin-top: 18px;
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(15, 23, 42, .74);
    border: 1px solid rgba(34, 211, 238, .20);
    color: #22d3ee;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .16em;
    text-align: center;
}

/* RESULTS */

.aulo-ai-results {
    padding: 28px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.aulo-ai-card {
    position: relative;
    z-index: 2;
    min-height: 440px;
    display: flex;
    flex-direction: column;
    border-radius: 28px;
    overflow: hidden;
    background: rgba(2, 6, 23, .74);
    border: 1px solid rgba(34, 211, 238, .18);
    box-shadow:
        inset 0 0 22px rgba(255,255,255,.035),
        0 0 28px rgba(34, 211, 238, .06);
    transition: all .25s ease;
}

.aulo-ai-card:hover {
    transform: translateY(-5px);
    border-color: rgba(34, 211, 238, .55);
    box-shadow:
        0 0 28px rgba(34, 211, 238, .26),
        0 0 55px rgba(168, 85, 247, .18);
}

.aulo-ai-image {
    position: relative;
    height: 310px;
    overflow: hidden;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 30% 20%, rgba(34, 211, 238, .36), transparent 24%),
        radial-gradient(circle at 72% 62%, rgba(168, 85, 247, .42), transparent 32%),
        linear-gradient(135deg, #020617, #111827);
}

.aulo-ai-image::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(255,255,255,.04) 0px,
            rgba(255,255,255,.04) 1px,
            transparent 1px,
            transparent 5px
        );
    opacity: .42;
}

.aulo-ai-image::after {
    content: "";
    position: absolute;
    width: 180px;
    height: 180px;
    border-radius: 40%;
    border: 1px solid rgba(34, 211, 238, .34);
    box-shadow:
        0 0 28px rgba(34, 211, 238, .28),
        inset 0 0 28px rgba(168, 85, 247, .18);
    animation: auloAiFloat 4s ease-in-out infinite;
}

.aulo-ai-image span {
    position: relative;
    z-index: 2;
    color: rgba(255,255,255,.92);
    font-size: 54px;
    font-weight: 900;
    letter-spacing: -.08em;
    text-shadow:
        0 0 24px rgba(34, 211, 238, .75),
        0 0 58px rgba(168, 85, 247, .55);
}

.aulo-ai-card-info {
    padding: 18px;
}

.aulo-ai-card-info strong {
    display: block;
    color: #22d3ee;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .18em;
}

.aulo-ai-card-info p {
    margin: 9px 0 0;
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.5;
}

/* GENERATED STATES */

.aulo-ai-card.generating .aulo-ai-image::after {
    animation: auloAiSpin 1s linear infinite;
}

.aulo-ai-card.generated .aulo-ai-image {
    animation: auloAiReveal .5s ease both;
}

.aulo-ai-card.generated .aulo-ai-image span {
    font-size: 28px;
    letter-spacing: .08em;
}

.aulo-ai-card.style-cyberpunk .aulo-ai-image {
    background:
        radial-gradient(circle at 20% 20%, rgba(34, 211, 238, .48), transparent 25%),
        radial-gradient(circle at 78% 58%, rgba(236, 72, 153, .46), transparent 32%),
        linear-gradient(135deg, #020617, #2e1065);
}

.aulo-ai-card.style-cinematic .aulo-ai-image {
    background:
        radial-gradient(circle at 30% 30%, rgba(250, 204, 21, .28), transparent 28%),
        radial-gradient(circle at 75% 60%, rgba(15, 23, 42, .82), transparent 36%),
        linear-gradient(135deg, #111827, #020617);
}

.aulo-ai-card.style-3d .aulo-ai-image {
    background:
        radial-gradient(circle at 32% 25%, rgba(125, 211, 252, .48), transparent 25%),
        radial-gradient(circle at 72% 65%, rgba(168, 85, 247, .42), transparent 34%),
        linear-gradient(135deg, #0f172a, #082f49);
}

.aulo-ai-card.style-anime .aulo-ai-image {
    background:
        radial-gradient(circle at 28% 22%, rgba(251, 113, 133, .42), transparent 26%),
        radial-gradient(circle at 78% 62%, rgba(96, 165, 250, .44), transparent 34%),
        linear-gradient(135deg, #312e81, #020617);
}

.aulo-ai-card.style-realista .aulo-ai-image {
    background:
        radial-gradient(circle at 34% 30%, rgba(255, 255, 255, .28), transparent 26%),
        radial-gradient(circle at 76% 66%, rgba(34, 197, 94, .32), transparent 34%),
        linear-gradient(135deg, #0f172a, #1e293b);
}

.aulo-ai-card.style-fantasia .aulo-ai-image {
    background:
        radial-gradient(circle at 30% 25%, rgba(216, 180, 254, .46), transparent 24%),
        radial-gradient(circle at 76% 64%, rgba(74, 222, 128, .38), transparent 34%),
        linear-gradient(135deg, #2e1065, #052e16);
}

.aulo-ai-card.style-educativo .aulo-ai-image {
    background:
        radial-gradient(circle at 30% 25%, rgba(34, 211, 238, .42), transparent 24%),
        radial-gradient(circle at 76% 64%, rgba(250, 204, 21, .34), transparent 34%),
        linear-gradient(135deg, #082f49, #020617);
}

@keyframes auloAiFloat {
    0%, 100% {
        transform: translateY(0) rotate(0deg) scale(1);
    }

    50% {
        transform: translateY(-12px) rotate(8deg) scale(1.06);
    }
}

@keyframes auloAiSpin {
    from {
        transform: rotate(0deg) scale(.92);
    }

    to {
        transform: rotate(360deg) scale(1.08);
    }
}

@keyframes auloAiReveal {
    from {
        filter: blur(14px);
        transform: scale(.96);
        opacity: .6;
    }

    to {
        filter: blur(0);
        transform: scale(1);
        opacity: 1;
    }
}

/* RESPONSIVE */

@media (max-width: 1080px) {
    .aulo-ai-generator {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 780px) {
    .aulo-ai-results {
        grid-template-columns: 1fr;
    }

    .aulo-ai-card {
        min-height: auto;
    }

    .aulo-ai-controls {
        grid-template-columns: 1fr;
    }

    .aulo-ai-actions {
        flex-direction: column;
    }
}

@media (max-width: 576px) {
    .aulo-ai-core-section {
        padding: 80px 16px;
    }

    .aulo-ai-copy h2 {
        font-size: 42px;
    }

    .aulo-ai-copy p {
        font-size: 16px;
    }

    .aulo-ai-panel,
    .aulo-ai-results {
        padding: 20px;
        border-radius: 28px;
    }

    .aulo-ai-image {
        height: 260px;
    }
}

.aulo-ai-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 3;
}

/* =========================================================
   AULÓPOLIS · FINANCE CORE
========================================================= */

.finance-core-section {
    position: relative;
    overflow: hidden;
    padding: 120px 20px;
    background:
        radial-gradient(circle at 20% 25%, rgba(34, 211, 238, .16), transparent 32%),
        radial-gradient(circle at 80% 50%, rgba(250, 204, 21, .12), transparent 34%),
        linear-gradient(135deg, #020617 0%, #07111f 48%, #020617 100%);
    color: #fff;
}

.finance-core-bg {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(34, 211, 238, .06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(250, 204, 21, .045) 1px, transparent 1px);
    background-size: 80px 80px;
    animation: financeGridMove 22s linear infinite;
    opacity: .75;
}

@keyframes financeGridMove {
    to {
        transform: translateY(80px);
    }
}

.finance-core-container {
    position: relative;
    z-index: 2;
    max-width: 1280px;
    margin: 0 auto;
}

.finance-core-header {
    max-width: 820px;
    margin-bottom: 54px;
}

.finance-core-header span {
    display: inline-block;
    margin-bottom: 18px;
    padding: 9px 18px;
    border-radius: 999px;
    border: 1px solid rgba(250, 204, 21, .35);
    background: rgba(113, 63, 18, .28);
    color: #fde047;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 2px;
}

.finance-core-header h2 {
    margin: 0 0 22px;
    font-size: clamp(42px, 7vw, 88px);
    line-height: .9;
    font-weight: 950;
    letter-spacing: -4px;
    background: linear-gradient(90deg, #ffffff, #fde047, #67e8f9);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.finance-core-header p {
    margin: 0;
    color: #cbd5e1;
    font-size: 18px;
    line-height: 1.8;
}

.finance-core-grid {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 22px;
}

.finance-panel {
    position: relative;
    overflow: hidden;
    padding: 26px;
    border-radius: 28px;
    background:
        radial-gradient(circle at top left, rgba(34, 211, 238, .1), transparent 42%),
        rgba(15, 23, 42, .76);
    border: 1px solid rgba(103, 232, 249, .18);
    box-shadow:
        0 24px 80px rgba(0, 0, 0, .35),
        inset 0 0 24px rgba(255, 255, 255, .03);
    backdrop-filter: blur(18px);
}

.finance-panel-title {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 22px;
}

.finance-panel-title h3 {
    margin: 0;
    color: #fff;
    font-size: 22px;
    font-weight: 950;
}

.finance-panel-title small {
    color: #94a3b8;
    font-size: 12px;
}

.finance-asset-list {
    display: grid;
    gap: 12px;
}

.finance-asset {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 16px;
    border-radius: 18px;
    background: rgba(2, 6, 23, .68);
    border: 1px solid rgba(103, 232, 249, .13);
    cursor: pointer;
    transition: .25s ease;
}

.finance-asset:hover,
.finance-asset.active {
    transform: translateY(-3px);
    border-color: rgba(250, 204, 21, .48);
    box-shadow: 0 0 34px rgba(250, 204, 21, .12);
}

.finance-asset-name {
    display: flex;
    flex-direction: column;
}

.finance-asset-name strong {
    color: #fff;
    font-size: 15px;
    font-weight: 900;
}

.finance-asset-name span {
    color: #94a3b8;
    font-size: 12px;
}

.finance-asset-price {
    text-align: right;
}

.finance-asset-price strong {
    display: block;
    color: #67e8f9;
    font-size: 15px;
}

.finance-asset-price span {
    font-size: 12px;
    font-weight: 800;
}

.finance-up {
    color: #4ade80;
}

.finance-down {
    color: #fb7185;
}

.finance-selected {
    padding: 24px;
    margin-bottom: 22px;
    border-radius: 24px;
    background:
        radial-gradient(circle at top right, rgba(250, 204, 21, .18), transparent 44%),
        rgba(2, 6, 23, .72);
    border: 1px solid rgba(250, 204, 21, .22);
}

.finance-selected span {
    color: #fde047;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 2px;
}

.finance-selected h4 {
    margin: 12px 0 8px;
    color: #fff;
    font-size: 30px;
    font-weight: 950;
}

.finance-selected strong {
    color: #67e8f9;
    font-size: 26px;
}

.finance-trade-panel label {
    display: block;
    margin-bottom: 8px;
    color: #cbd5e1;
    font-size: 13px;
    font-weight: 800;
}

.finance-trade-panel input {
    width: 100%;
    height: 52px;
    padding: 0 16px;
    border-radius: 16px;
    border: 1px solid rgba(103, 232, 249, .25);
    background: rgba(2, 6, 23, .82);
    color: #fff;
    outline: none;
}

.finance-trade-panel input:focus {
    border-color: #67e8f9;
    box-shadow: 0 0 28px rgba(34, 211, 238, .18);
}

.finance-trade-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 18px;
}

.finance-trade-buttons button {
    height: 52px;
    border: 0;
    border-radius: 16px;
    color: #020617;
    font-weight: 950;
    cursor: pointer;
    transition: .25s ease;
}

#financeBuyBtn {
    background: linear-gradient(135deg, #4ade80, #22c55e);
}

#financeSellBtn {
    background: linear-gradient(135deg, #fb7185, #ef4444);
}

.finance-trade-buttons button:hover {
    transform: translateY(-3px);
}

.finance-message {
    min-height: 42px;
    margin-top: 18px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(2, 6, 23, .58);
    color: #94a3b8;
    font-size: 13px;
    line-height: 1.5;
}

.finance-chart-panel {
    min-height: 390px;
}

#financeChartCanvas {
    width: 100%;
    height: 300px;
    display: block;
}

.finance-balance-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 16px;
    margin-bottom: 12px;
    border-radius: 18px;
    background: rgba(2, 6, 23, .66);
    border: 1px solid rgba(103, 232, 249, .12);
}

.finance-balance-card span {
    color: #94a3b8;
    font-size: 13px;
}

.finance-balance-card strong {
    color: #fff;
    font-size: 18px;
    font-weight: 950;
}

.finance-portfolio-list {
    margin-top: 20px;
    display: grid;
    gap: 12px;
}

.finance-portfolio-list p {
    margin: 0;
    color: #94a3b8;
}

.finance-position {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    padding: 14px;
    border-radius: 16px;
    background: rgba(15, 23, 42, .86);
    border: 1px solid rgba(103, 232, 249, .12);
}

.finance-position strong {
    color: #fff;
    display: block;
}

.finance-position span {
    color: #94a3b8;
    font-size: 12px;
}

.finance-position-value {
    text-align: right;
}

.finance-core-disclaimer {
    margin-top: 22px;
    padding: 18px 22px;
    border-radius: 20px;
    background: rgba(250, 204, 21, .08);
    border: 1px solid rgba(250, 204, 21, .22);
    color: #fef3c7;
    font-size: 13px;
    line-height: 1.6;
}

@media (max-width: 991px) {
    .finance-core-section {
        padding: 90px 18px;
    }

    .finance-core-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .finance-core-header h2 {
        font-size: 46px;
        letter-spacing: -2px;
    }

    .finance-panel {
        padding: 20px;
    }

    .finance-trade-buttons {
        grid-template-columns: 1fr;
    }

    .finance-panel-title {
        flex-direction: column;
    }

    #financeChartCanvas {
        height: 260px;
    }
}

/* =========================================================
   AULÓPOLIS · CYBER CORE THREAT LAB
========================================================= */

.cyber-threat-lab-section {
    position: relative;
    overflow: hidden;
    padding: 120px 20px;
    background:
        radial-gradient(circle at 20% 30%, rgba(34, 211, 238, .16), transparent 32%),
        radial-gradient(circle at 82% 58%, rgba(239, 68, 68, .14), transparent 34%),
        linear-gradient(135deg, #020617 0%, #07111f 48%, #020617 100%);
    color: #fff;
}

.cyber-threat-bg {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(34, 211, 238, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(239, 68, 68, .045) 1px, transparent 1px);
    background-size: 80px 80px;
    animation: cyberThreatGrid 20s linear infinite;
    opacity: .8;
}

@keyframes cyberThreatGrid {
    to {
        transform: translateY(80px);
    }
}

.cyber-threat-container {
    position: relative;
    z-index: 2;
    max-width: 1280px;
    margin: 0 auto;
}

.cyber-threat-header {
    max-width: 820px;
    margin-bottom: 54px;
}

.cyber-threat-header span {
    display: inline-block;
    margin-bottom: 18px;
    padding: 9px 18px;
    border-radius: 999px;
    border: 1px solid rgba(34, 211, 238, .38);
    background: rgba(8, 47, 73, .35);
    color: #67e8f9;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 2px;
}

.cyber-threat-header h2 {
    margin: 0 0 22px;
    font-size: clamp(44px, 7vw, 92px);
    line-height: .9;
    font-weight: 950;
    letter-spacing: -4px;
    background: linear-gradient(90deg, #ffffff, #67e8f9, #fb7185);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.cyber-threat-header p {
    margin: 0;
    color: #cbd5e1;
    font-size: 18px;
    line-height: 1.8;
}

.cyber-threat-grid {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 24px;
    align-items: stretch;
}

.cyber-radar-panel,
.cyber-soc-panel {
    position: relative;
    overflow: hidden;
    padding: 28px;
    border-radius: 30px;
    background:
        radial-gradient(circle at top left, rgba(34, 211, 238, .10), transparent 42%),
        rgba(15, 23, 42, .78);
    border: 1px solid rgba(103, 232, 249, .18);
    box-shadow:
        0 24px 80px rgba(0, 0, 0, .38),
        inset 0 0 28px rgba(255, 255, 255, .03);
    backdrop-filter: blur(18px);
}

.cyber-panel-title {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 24px;
}

.cyber-panel-title h3 {
    margin: 0;
    color: #fff;
    font-size: 24px;
    font-weight: 950;
}

.cyber-panel-title small {
    color: #94a3b8;
    font-size: 12px;
    text-align: right;
}

.cyber-radar-screen {
    position: relative;
    overflow: hidden;
    height: 420px;
    border-radius: 28px;
    background:
        radial-gradient(circle at center, rgba(34, 211, 238, .11), transparent 38%),
        rgba(2, 6, 23, .85);
    border: 1px solid rgba(103, 232, 249, .18);
    box-shadow:
        inset 0 0 80px rgba(34, 211, 238, .12),
        0 0 45px rgba(34, 211, 238, .08);
}

#cyberThreatCanvas {
    width: 100%;
    height: 100%;
    display: block;
}

.cyber-radar-core {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 92px;
    height: 92px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 35% 30%, #ffffff, #67e8f9 24%, #0f172a 72%);
    box-shadow:
        0 0 35px rgba(34, 211, 238, .9),
        0 0 90px rgba(34, 211, 238, .45);
    pointer-events: none;
}

.cyber-radar-core span {
    color: #020617;
    font-size: 14px;
    font-weight: 950;
    letter-spacing: 1px;
}

.cyber-threat-actions {
    display: grid;
    grid-template-columns: 1fr 1fr .75fr;
    gap: 12px;
    margin-top: 20px;
}

.cyber-threat-actions button {
    height: 54px;
    border: 0;
    border-radius: 16px;
    color: #fff;
    font-weight: 950;
    cursor: pointer;
    transition: .25s ease;
}

#cyberScanBtn {
    background: linear-gradient(135deg, #06b6d4, #2563eb);
    box-shadow: 0 0 28px rgba(37, 99, 235, .28);
}

#cyberBlockBtn {
    background: linear-gradient(135deg, #22c55e, #15803d);
    box-shadow: 0 0 28px rgba(34, 197, 94, .24);
}

#cyberResetBtn {
    background: rgba(15, 23, 42, .9);
    border: 1px solid rgba(148, 163, 184, .25);
}

.cyber-threat-actions button:hover {
    transform: translateY(-3px);
}

.cyber-soc-card {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    padding: 18px;
    margin-bottom: 14px;
    border-radius: 18px;
    background: rgba(2, 6, 23, .72);
    border: 1px solid rgba(103, 232, 249, .13);
}

.cyber-soc-card span {
    color: #94a3b8;
    font-size: 13px;
}

.cyber-soc-card strong {
    color: #67e8f9;
    font-size: 22px;
    font-weight: 950;
}

.cyber-score-box {
    margin-top: 22px;
    padding: 20px;
    border-radius: 22px;
    background:
        radial-gradient(circle at top right, rgba(34, 211, 238, .12), transparent 42%),
        rgba(2, 6, 23, .72);
    border: 1px solid rgba(103, 232, 249, .16);
}

.cyber-score-top {
    display: flex;
    justify-content: space-between;
    margin-bottom: 14px;
}

.cyber-score-top span {
    color: #cbd5e1;
    font-size: 13px;
    font-weight: 800;
}

.cyber-score-top strong {
    color: #4ade80;
    font-size: 24px;
    font-weight: 950;
}

.cyber-score-bar {
    overflow: hidden;
    height: 12px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .95);
}

#cyberSecurityBar {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #22c55e, #67e8f9);
    transition: width .35s ease;
}

.cyber-lesson-box {
    margin-top: 22px;
    padding: 24px;
    border-radius: 24px;
    background:
        radial-gradient(circle at top left, rgba(239, 68, 68, .12), transparent 42%),
        rgba(2, 6, 23, .72);
    border: 1px solid rgba(248, 113, 113, .18);
}

.cyber-lesson-box span {
    color: #fb7185;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.cyber-lesson-box h4 {
    margin: 12px 0 10px;
    color: #fff;
    font-size: 22px;
    font-weight: 950;
}

.cyber-lesson-box p {
    margin: 0;
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.7;
}

@media (max-width: 991px) {
    .cyber-threat-lab-section {
        padding: 90px 18px;
    }

    .cyber-threat-grid {
        grid-template-columns: 1fr;
    }

    .cyber-radar-screen {
        height: 360px;
    }
}

@media (max-width: 575px) {
    .cyber-threat-header h2 {
        font-size: 46px;
        letter-spacing: -2px;
    }

    .cyber-radar-panel,
    .cyber-soc-panel {
        padding: 20px;
    }

    .cyber-threat-actions {
        grid-template-columns: 1fr;
    }

    .cyber-radar-screen {
        height: 310px;
    }
}

/* =========================================================
   CYBER CORE · INCIDENT RESPONSE
========================================================= */

.cyber-incident-box {
    margin-top: 22px;
    padding: 24px;
    border-radius: 24px;
    background:
        radial-gradient(circle at top right, rgba(34, 211, 238, .12), transparent 42%),
        rgba(2, 6, 23, .78);
    border: 1px solid rgba(103, 232, 249, .18);
}

.cyber-incident-title {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    margin-bottom: 16px;
}

.cyber-incident-title span {
    color: #67e8f9;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 2px;
}

.cyber-incident-title strong {
    color: #facc15;
    font-size: 13px;
    text-align: right;
}

.cyber-log-console {
    min-height: 130px;
    max-height: 170px;
    overflow: auto;
    padding: 16px;
    border-radius: 18px;
    background: #020617;
    border: 1px solid rgba(34, 211, 238, .18);
    box-shadow: inset 0 0 30px rgba(34, 211, 238, .08);
    font-family: Consolas, Monaco, monospace;
}

.cyber-log-console p {
    margin: 0 0 8px;
    color: #94a3b8;
    font-size: 12px;
    line-height: 1.5;
}

.cyber-log-console p.critical {
    color: #fb7185;
}

.cyber-log-console p.warning {
    color: #facc15;
}

.cyber-log-console p.success {
    color: #4ade80;
}

.cyber-defense-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 18px;
}

.cyber-defense-options button {
    min-height: 46px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(103, 232, 249, .18);
    background: rgba(15, 23, 42, .88);
    color: #cbd5e1;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    transition: .25s ease;
}

.cyber-defense-options button:hover {
    transform: translateY(-2px);
    border-color: rgba(103, 232, 249, .45);
    color: #fff;
}

.cyber-defense-options button.correct {
    background: rgba(34, 197, 94, .22);
    border-color: rgba(74, 222, 128, .65);
    color: #bbf7d0;
}

.cyber-defense-options button.wrong {
    background: rgba(239, 68, 68, .20);
    border-color: rgba(248, 113, 113, .60);
    color: #fecdd3;
}

.cyber-hardening-box {
    margin-top: 18px;
    padding: 18px;
    border-radius: 18px;
    background: rgba(15, 23, 42, .70);
    border: 1px solid rgba(103, 232, 249, .12);
}

.cyber-hardening-box h4 {
    margin: 0 0 14px;
    color: #fff;
    font-size: 16px;
    font-weight: 950;
}

.cyber-hardening-box label {
    display: flex;
    gap: 10px;
    align-items: center;
    color: #cbd5e1;
    font-size: 13px;
    margin-bottom: 10px;
    cursor: pointer;
}

.cyber-hardening-box input {
    accent-color: #22d3ee;
}

@media (max-width: 575px) {
    .cyber-defense-options {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .mobile-hide {
        display: none !important;
    }
}

/* =========================================
   AULÓPOLIS STELLAR CORE — NUEVA SECTION
========================================= */

.aulo-stellar-core-section {
    position: relative;
    width: 100%;
    min-height: 1550px;
    padding: 220px 24px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 50% 45%, rgba(34, 211, 238, .12), transparent 18%),
        radial-gradient(circle at 50% 50%, rgba(124, 58, 237, .18), transparent 42%),
        radial-gradient(circle at 18% 28%, rgba(236, 72, 153, .12), transparent 34%),
        radial-gradient(circle at 82% 68%, rgba(59, 130, 246, .12), transparent 36%),
        linear-gradient(180deg, #02040c 0%, #050816 42%, #03101f 72%, #02040c 100%);
}

.aulo-stellar-core-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.45) 1px, transparent 1.8px),
        radial-gradient(circle, rgba(34,211,238,.28) 1px, transparent 2px);
    background-size: 120px 120px, 220px 220px;
    background-position: 0 0, 60px 80px;
    opacity: .20;
    pointer-events: none;
}

.aulo-stellar-core-section::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, rgba(2,4,12,.75), transparent 28%, transparent 72%, rgba(2,4,12,.75)),
        radial-gradient(circle at center, transparent 0%, transparent 42%, rgba(0,0,0,.42) 100%);
    pointer-events: none;
}

.aulo-stellar-stage {
    position: relative;
    width: 100%;
    min-height: 720px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

/* =========================================
   REACTOR GENERAL
========================================= */

.aulo-stellar-reactor {
    position: relative;
    width: 520px;
    height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: stellarFloat 8s ease-in-out infinite;
}

/* luz profunda */
.stellar-deep-glow {
    position: absolute;
    width: 920px;
    height: 920px;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(255,255,255,.16) 0%, rgba(34,211,238,.18) 10%, rgba(124,58,237,.10) 32%, transparent 68%);
    filter: blur(42px);
    opacity: .95;
    animation: stellarBreath 6s ease-in-out infinite;
}

/* halos */
.stellar-halo {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.halo-one {
    width: 760px;
    height: 760px;
    background: radial-gradient(circle, rgba(34,211,238,.18), transparent 68%);
    filter: blur(28px);
    animation: haloPulseOne 7s ease-in-out infinite;
}

.halo-two {
    width: 620px;
    height: 620px;
    background: radial-gradient(circle, rgba(124,58,237,.20), transparent 70%);
    filter: blur(22px);
    animation: haloPulseTwo 9s ease-in-out infinite reverse;
}

.halo-three {
    width: 460px;
    height: 460px;
    background: radial-gradient(circle, rgba(255,255,255,.12), transparent 72%);
    filter: blur(16px);
    animation: haloPulseOne 5s ease-in-out infinite;
}

/* =========================================
   ANILLOS
========================================= */

.stellar-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.12);
    pointer-events: none;
}

.stellar-ring-a {
    width: 590px;
    height: 590px;
    border-color: rgba(34,211,238,.22);
    box-shadow:
        0 0 22px rgba(34,211,238,.26),
        inset 0 0 22px rgba(34,211,238,.08);
    transform: rotateX(72deg) rotateZ(12deg);
    animation: stellarRingA 18s linear infinite;
}

.stellar-ring-b {
    width: 690px;
    height: 690px;
    border-color: rgba(124,58,237,.20);
    box-shadow:
        0 0 28px rgba(124,58,237,.24),
        inset 0 0 22px rgba(124,58,237,.08);
    transform: rotateX(78deg) rotateZ(-22deg);
    animation: stellarRingB 22s linear infinite reverse;
}

.stellar-ring-c {
    width: 810px;
    height: 810px;
    border-color: rgba(255,255,255,.08);
    box-shadow:
        0 0 22px rgba(255,255,255,.12),
        inset 0 0 18px rgba(255,255,255,.06);
    transform: rotateX(82deg) rotateZ(45deg);
    animation: stellarRingC 32s linear infinite;
}

/* =========================================
   RAYOS DE LUZ
========================================= */

.stellar-light-ray {
    position: absolute;
    width: 2px;
    height: 520px;
    background: linear-gradient(to bottom, transparent, rgba(34,211,238,.70), transparent);
    filter: blur(.4px);
    opacity: .34;
    transform-origin: center;
    pointer-events: none;
}

.ray-one {
    transform: rotate(0deg);
    animation: rayBlink 4s ease-in-out infinite;
}

.ray-two {
    transform: rotate(45deg);
    animation: rayBlink 5s ease-in-out infinite reverse;
}

.ray-three {
    transform: rotate(90deg);
    animation: rayBlink 6s ease-in-out infinite;
}

.ray-four {
    transform: rotate(135deg);
    animation: rayBlink 5.5s ease-in-out infinite reverse;
}

/* =========================================
   PUNTOS ORBITALES
========================================= */

.stellar-orbital-dot {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #9befff;
    box-shadow:
        0 0 12px rgba(34,211,238,.95),
        0 0 28px rgba(255,255,255,.58);
    z-index: 6;
}

.dot-one {
    top: 40px;
    left: 50%;
    animation: dotFloatOne 6s ease-in-out infinite;
}

.dot-two {
    right: 18px;
    top: 50%;
    animation: dotFloatTwo 7s ease-in-out infinite;
}

.dot-three {
    bottom: 42px;
    left: 36%;
    animation: dotFloatThree 8s ease-in-out infinite;
}

.dot-four {
    left: 20px;
    top: 45%;
    animation: dotFloatFour 7.5s ease-in-out infinite;
}

/* =========================================
   ESFERA REALISTA
========================================= */

.stellar-sphere {
    position: relative;
    width: 310px;
    height: 310px;
    border-radius: 50%;
    z-index: 5;
    background:
        radial-gradient(circle at 32% 26%, rgba(255,255,255,1) 0%, rgba(255,255,255,.70) 8%, rgba(125,249,255,.35) 18%, transparent 34%),
        radial-gradient(circle at 54% 48%, rgba(125,249,255,1) 0%, rgba(34,211,238,.90) 28%, rgba(37,99,235,.68) 52%, rgba(11,16,35,1) 88%),
        radial-gradient(circle at 70% 76%, rgba(124,58,237,.64), transparent 46%);
    border: 1px solid rgba(255,255,255,.20);
    box-shadow:
        inset -32px -38px 58px rgba(0,0,0,.48),
        inset 18px 24px 46px rgba(255,255,255,.16),
        0 0 42px rgba(255,255,255,.28),
        0 0 82px rgba(34,211,238,.46),
        0 0 160px rgba(124,58,237,.34),
        0 0 260px rgba(34,211,238,.18);
    overflow: hidden;
    animation: spherePulse 4s ease-in-out infinite;
}

.stellar-sphere-glass {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background:
        linear-gradient(135deg, rgba(255,255,255,.35), transparent 28%, transparent 64%, rgba(255,255,255,.10)),
        radial-gradient(circle at 38% 24%, rgba(255,255,255,.62), transparent 18%);
    mix-blend-mode: screen;
    opacity: .85;
}

.stellar-sphere-core {
    position: absolute;
    inset: 48px;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(255,255,255,1) 0%, rgba(255,255,255,.80) 10%, rgba(34,211,238,.64) 34%, transparent 72%);
    filter: blur(12px);
    animation: innerCorePulse 3.2s ease-in-out infinite;
}

.stellar-sphere-shine {
    position: absolute;
    width: 120px;
    height: 120px;
    top: 54px;
    left: 62px;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(255,255,255,.96) 0%, rgba(255,255,255,.38) 30%, transparent 72%);
    filter: blur(7px);
    opacity: .95;
    animation: shineMove 6s ease-in-out infinite;
}

.stellar-sphere-flare {
    position: absolute;
    inset: -30px;
    border-radius: 50%;
    background:
        conic-gradient(from 120deg,
            transparent 0deg,
            rgba(255,255,255,.18) 40deg,
            rgba(34,211,238,.32) 75deg,
            transparent 125deg,
            rgba(124,58,237,.22) 210deg,
            transparent 290deg,
            rgba(255,255,255,.16) 330deg,
            transparent 360deg);
    filter: blur(16px);
    mix-blend-mode: screen;
    opacity: .75;
    animation: flareRotate 14s linear infinite;
}

/* luz inferior */
.stellar-floor-light {
    position: absolute;
    bottom: -120px;
    width: 520px;
    height: 120px;
    border-radius: 50%;
    background:
        radial-gradient(ellipse at center, rgba(34,211,238,.28), rgba(124,58,237,.12) 45%, transparent 72%);
    filter: blur(22px);
    opacity: .75;
    animation: floorGlow 5s ease-in-out infinite;
}

/* =========================================
   ANIMACIONES
========================================= */

@keyframes stellarFloat {
    0%, 100% {
        transform: translateY(0) scale(1);
    }

    50% {
        transform: translateY(-26px) scale(1.025);
    }
}

@keyframes stellarBreath {
    0%, 100% {
        transform: scale(.96);
        opacity: .72;
    }

    50% {
        transform: scale(1.08);
        opacity: 1;
    }
}

@keyframes haloPulseOne {
    0%, 100% {
        transform: scale(1);
        opacity: .7;
    }

    50% {
        transform: scale(1.08);
        opacity: 1;
    }
}

@keyframes haloPulseTwo {
    0%, 100% {
        transform: scale(.94);
        opacity: .64;
    }

    50% {
        transform: scale(1.04);
        opacity: 1;
    }
}

@keyframes stellarRingA {
    from {
        transform: rotate(0deg) rotateX(72deg) rotateZ(12deg);
    }

    to {
        transform: rotate(360deg) rotateX(72deg) rotateZ(12deg);
    }
}

@keyframes stellarRingB {
    from {
        transform: rotate(0deg) rotateX(78deg) rotateZ(-22deg);
    }

    to {
        transform: rotate(-360deg) rotateX(78deg) rotateZ(-22deg);
    }
}

@keyframes stellarRingC {
    from {
        transform: rotate(0deg) rotateX(82deg) rotateZ(45deg);
    }

    to {
        transform: rotate(360deg) rotateX(82deg) rotateZ(45deg);
    }
}

@keyframes rayBlink {
    0%, 100% {
        opacity: .14;
        height: 430px;
    }

    50% {
        opacity: .42;
        height: 560px;
    }
}

@keyframes dotFloatOne {
    0%, 100% {
        transform: translate(-50%, 0);
        opacity: .6;
    }

    50% {
        transform: translate(-50%, -24px);
        opacity: 1;
    }
}

@keyframes dotFloatTwo {
    0%, 100% {
        transform: translate(0, -50%);
        opacity: .6;
    }

    50% {
        transform: translate(26px, -50%);
        opacity: 1;
    }
}

@keyframes dotFloatThree {
    0%, 100% {
        transform: translateY(0);
        opacity: .6;
    }

    50% {
        transform: translateY(24px);
        opacity: 1;
    }
}

@keyframes dotFloatFour {
    0%, 100% {
        transform: translate(0, -50%);
        opacity: .6;
    }

    50% {
        transform: translate(-22px, -50%);
        opacity: 1;
    }
}

@keyframes spherePulse {
    0%, 100% {
        transform: scale(1);
        filter: brightness(1);
    }

    50% {
        transform: scale(1.035);
        filter: brightness(1.18);
    }
}

@keyframes innerCorePulse {
    0%, 100% {
        transform: scale(.92);
        opacity: .70;
    }

    50% {
        transform: scale(1.1);
        opacity: 1;
    }
}

@keyframes shineMove {
    0%, 100% {
        transform: translate(0, 0) scale(1);
        opacity: .86;
    }

    50% {
        transform: translate(18px, -12px) scale(1.1);
        opacity: 1;
    }
}

@keyframes flareRotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes floorGlow {
    0%, 100% {
        transform: scaleX(1);
        opacity: .58;
    }

    50% {
        transform: scaleX(1.15);
        opacity: .92;
    }
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 991px) {

    .aulo-stellar-core-section {
        min-height: 900px;
        padding: 160px 20px;
    }

    .aulo-stellar-stage {
        min-height: 600px;
    }

    .aulo-stellar-reactor {
        width: 420px;
        height: 420px;
    }

    .stellar-deep-glow {
        width: 720px;
        height: 720px;
    }

    .halo-one {
        width: 620px;
        height: 620px;
    }

    .halo-two {
        width: 520px;
        height: 520px;
    }

    .halo-three {
        width: 380px;
        height: 380px;
    }

    .stellar-ring-a {
        width: 460px;
        height: 460px;
    }

    .stellar-ring-b {
        width: 540px;
        height: 540px;
    }

    .stellar-ring-c {
        width: 630px;
        height: 630px;
    }

    .stellar-sphere {
        width: 250px;
        height: 250px;
    }

    .stellar-floor-light {
        width: 420px;
    }
}

@media (max-width: 767px) {

    .aulo-stellar-core-section {
        min-height: 720px;
        padding: 120px 16px;
    }

    .aulo-stellar-stage {
        min-height: 460px;
    }

    .aulo-stellar-reactor {
        width: 300px;
        height: 300px;
    }

    .stellar-deep-glow {
        width: 500px;
        height: 500px;
        filter: blur(30px);
    }

    .halo-one {
        width: 440px;
        height: 440px;
    }

    .halo-two {
        width: 360px;
        height: 360px;
    }

    .halo-three {
        width: 280px;
        height: 280px;
    }

    .stellar-ring-a {
        width: 330px;
        height: 330px;
    }

    .stellar-ring-b {
        width: 390px;
        height: 390px;
    }

    .stellar-ring-c {
        width: 450px;
        height: 450px;
    }

    .stellar-light-ray {
        height: 340px;
        opacity: .24;
    }

    .stellar-sphere {
        width: 180px;
        height: 180px;
    }

    .stellar-sphere-core {
        inset: 30px;
    }

    .stellar-sphere-shine {
        width: 78px;
        height: 78px;
        top: 34px;
        left: 38px;
    }

    .stellar-floor-light {
        bottom: -86px;
        width: 300px;
        height: 90px;
    }

    .stellar-orbital-dot {
        width: 7px;
        height: 7px;
    }
}
/* =========================================
   AULÓPOLIS DIMENSIONAL ENHANCEMENT
========================================= */

.aulo-stellar-core-section {
    perspective: 1800px;
    background:
        radial-gradient(circle at 50% 48%, rgba(34, 211, 238, .08), transparent 14%),
        radial-gradient(circle at 50% 52%, rgba(124, 58, 237, .12), transparent 30%),
        radial-gradient(circle at 18% 20%, rgba(236, 72, 153, .10), transparent 30%),
        radial-gradient(circle at 82% 80%, rgba(59, 130, 246, .10), transparent 36%),
        linear-gradient(180deg, #01030a 0%, #030612 28%, #040816 58%, #01030a 100%);
}

/* =========================================
   CAMPO DIMENSIONAL
========================================= */

.aulo-dimensional-field {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 1;
}

.dimensional-void {
    position: absolute;
    inset: -10%;
    background:
        radial-gradient(circle at center, transparent 0%, transparent 22%, rgba(0,0,0,.16) 42%, rgba(0,0,0,.46) 72%, rgba(0,0,0,.78) 100%);
    filter: blur(20px);
    opacity: .95;
}

/* =========================================
   NEBULOSAS PROFUNDAS
========================================= */

.nebula-cloud {
    position: absolute;
    border-radius: 50%;
    filter: blur(70px);
    mix-blend-mode: screen;
    opacity: .32;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

.nebula-a {
    width: 680px;
    height: 680px;
    top: 8%;
    left: -8%;
    background:
        radial-gradient(circle, rgba(124,58,237,.28) 0%, rgba(34,211,238,.16) 34%, transparent 72%);
    animation: nebulaDriftA 18s infinite;
}

.nebula-b {
    width: 760px;
    height: 760px;
    right: -10%;
    top: 24%;
    background:
        radial-gradient(circle, rgba(34,211,238,.24) 0%, rgba(59,130,246,.14) 38%, transparent 74%);
    animation: nebulaDriftB 24s infinite;
}

.nebula-c {
    width: 620px;
    height: 620px;
    left: 24%;
    bottom: -8%;
    background:
        radial-gradient(circle, rgba(236,72,153,.20) 0%, rgba(124,58,237,.18) 34%, transparent 72%);
    animation: nebulaDriftC 20s infinite;
}

/* =========================================
   POLVO CÓSMICO
========================================= */

.stellar-dust {
    position: absolute;
    inset: 0;
    opacity: .22;
    background-repeat: repeat;
    animation: dustDrift 35s linear infinite;
}

.dust-a {
    background-image:
        radial-gradient(circle, rgba(255,255,255,.65) 1px, transparent 1.8px),
        radial-gradient(circle, rgba(34,211,238,.45) 1px, transparent 2px);
    background-size: 180px 180px, 260px 260px;
    background-position: 0 0, 60px 90px;
}

.dust-b {
    background-image:
        radial-gradient(circle, rgba(255,255,255,.28) 1px, transparent 1.8px),
        radial-gradient(circle, rgba(124,58,237,.28) 1px, transparent 2px);
    background-size: 240px 240px, 320px 320px;
    background-position: 80px 40px, 0 0;
    animation-duration: 50s;
    opacity: .14;
}

/* =========================================
   STARFIELD EN CAPAS
========================================= */

.deep-starfield {
    position: absolute;
    inset: -20%;
    background-repeat: repeat;
    pointer-events: none;
}

.stars-back {
    opacity: .18;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.85) 1px, transparent 2px);
    background-size: 220px 220px;
    animation: starsMoveBack 90s linear infinite;
}

.stars-mid {
    opacity: .26;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.90) 1.2px, transparent 2.2px),
        radial-gradient(circle, rgba(34,211,238,.85) 1px, transparent 2px);
    background-size: 160px 160px, 280px 280px;
    background-position: 0 0, 40px 80px;
    animation: starsMoveMid 65s linear infinite;
}

.stars-front {
    opacity: .30;
    background-image:
        radial-gradient(circle, rgba(255,255,255,1) 1.4px, transparent 2.4px),
        radial-gradient(circle, rgba(124,58,237,.80) 1.2px, transparent 2.1px),
        radial-gradient(circle, rgba(34,211,238,.80) 1px, transparent 2px);
    background-size: 130px 130px, 220px 220px, 300px 300px;
    background-position: 0 0, 50px 100px, 120px 40px;
    animation: starsMoveFront 42s linear infinite;
}

/* =========================================
   DISTORSIÓN ESPACIAL
========================================= */

.space-distortion-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 900px;
    height: 900px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background:
        radial-gradient(circle,
            transparent 0%,
            transparent 34%,
            rgba(255,255,255,.03) 42%,
            rgba(34,211,238,.06) 48%,
            rgba(124,58,237,.05) 54%,
            transparent 66%);
    filter: blur(22px);
    opacity: .8;
    animation: distortionPulse 8s ease-in-out infinite;
}

.space-distortion-ring.ring-2 {
    width: 1120px;
    height: 1120px;
    opacity: .35;
    animation-duration: 12s;
}

/* =========================================
   RUIDO CÓSMICO SUTIL
========================================= */

.cosmic-noise-layer {
    position: absolute;
    inset: 0;
    opacity: .035;
    mix-blend-mode: screen;
    background-image:
        repeating-radial-gradient(circle at center,
            rgba(255,255,255,.25) 0 1px,
            transparent 1px 3px);
    background-size: 8px 8px;
    animation: noiseShift 1.8s steps(2) infinite;
}

/* =========================================
   REACTOR MÁS HIPNÓTICO
========================================= */

.aulo-stellar-reactor {
    transform-style: preserve-3d;
    animation:
        stellarFloat 8s ease-in-out infinite,
        reactorPresence 10s ease-in-out infinite;
}

.stellar-sphere {
    box-shadow:
        inset -32px -38px 58px rgba(0,0,0,.52),
        inset 18px 24px 46px rgba(255,255,255,.18),
        0 0 48px rgba(255,255,255,.34),
        0 0 100px rgba(34,211,238,.55),
        0 0 190px rgba(124,58,237,.42),
        0 0 320px rgba(34,211,238,.22);
    animation:
        spherePulse 4s ease-in-out infinite,
        sphereHypnosis 10s ease-in-out infinite;
}

.stellar-sphere-flare {
    opacity: .92;
    filter: blur(18px);
    animation: flareRotate 18s linear infinite;
}

.stellar-floor-light {
    opacity: .92;
    filter: blur(30px);
}

/* =========================================
   ANIMACIONES NUEVAS
========================================= */

@keyframes nebulaDriftA {
    0%, 100% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: .26;
    }
    50% {
        transform: translate3d(40px, -30px, 0) scale(1.08);
        opacity: .38;
    }
}

@keyframes nebulaDriftB {
    0%, 100% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: .24;
    }
    50% {
        transform: translate3d(-50px, 40px, 0) scale(1.10);
        opacity: .36;
    }
}

@keyframes nebulaDriftC {
    0%, 100% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: .20;
    }
    50% {
        transform: translate3d(30px, -24px, 0) scale(1.06);
        opacity: .32;
    }
}

@keyframes dustDrift {
    from { transform: translateY(0) translateX(0); }
    to   { transform: translateY(-80px) translateX(40px); }
}

@keyframes starsMoveBack {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(-80px, -120px, 0); }
}

@keyframes starsMoveMid {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(100px, -140px, 0); }
}

@keyframes starsMoveFront {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(-140px, -180px, 0); }
}

@keyframes distortionPulse {
    0%, 100% {
        transform: translate(-50%, -50%) scale(.96);
        opacity: .34;
    }
    50% {
        transform: translate(-50%, -50%) scale(1.04);
        opacity: .70;
    }
}

@keyframes noiseShift {
    0%   { transform: translate(0, 0); }
    25%  { transform: translate(1px, -1px); }
    50%  { transform: translate(-1px, 1px); }
    75%  { transform: translate(1px, 1px); }
    100% { transform: translate(0, 0); }
}

@keyframes reactorPresence {
    0%, 100% {
        transform: rotateX(0deg) rotateY(0deg) scale(1);
    }
    50% {
        transform: rotateX(2deg) rotateY(-2deg) scale(1.015);
    }
}

@keyframes sphereHypnosis {
    0%, 100% {
        filter: brightness(1) saturate(1);
    }
    50% {
        filter: brightness(1.16) saturate(1.18);
    }
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 991px) {
    .space-distortion-ring {
        width: 700px;
        height: 700px;
    }

    .space-distortion-ring.ring-2 {
        width: 860px;
        height: 860px;
    }

    .nebula-a,
    .nebula-b,
    .nebula-c {
        filter: blur(50px);
    }
}

@media (max-width: 767px) {
    .cosmic-noise-layer {
        opacity: .02;
    }

    .stars-back { opacity: .10; }
    .stars-mid  { opacity: .16; }
    .stars-front { opacity: .18; }

    .space-distortion-ring {
        width: 420px;
        height: 420px;
        filter: blur(16px);
    }

    .space-distortion-ring.ring-2 {
        width: 540px;
        height: 540px;
    }

    .nebula-a {
        width: 360px;
        height: 360px;
    }

    .nebula-b {
        width: 400px;
        height: 400px;
    }

    .nebula-c {
        width: 320px;
        height: 320px;
    }
}

/* =====================================================
   AULOPOLIS ONLY — FULL SCREEN CINEMATIC CARD VIEWER
===================================================== */

html.aulo-host-aulopolis {
    --aulo-cinema-z-backdrop: 2147483000;
    --aulo-cinema-z-viewer: 2147483001;
    --aulo-cinema-z-particles: 2147483002;

    --aulo-cinema-cyan: #22d3ee;
    --aulo-cinema-purple: #7c3aed;
    --aulo-cinema-pink: #ec4899;

    --aulo-cinema-radius: 30px;
}

/* =====================================================
   BACKDROP
===================================================== */

html.aulo-host-aulopolis .aulo-card-cinema-backdrop {
    position: fixed !important;
    inset: 0 !important;

    z-index: var(--aulo-cinema-z-backdrop) !important;

    opacity: 0 !important;
    pointer-events: none !important;

    background:
        radial-gradient(
            circle at center,
            rgba(34, 211, 238, .12),
            transparent 24%
        ),
        radial-gradient(
            circle at center,
            rgba(124, 58, 237, .16),
            transparent 46%
        ),
        rgba(1, 3, 10, .82) !important;

    backdrop-filter: blur(18px) saturate(1.25) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;

    transition: opacity .38s ease !important;
}

html.aulo-host-aulopolis .aulo-card-cinema-backdrop.show {
    opacity: 1 !important;
    pointer-events: none !important;
}

/* =====================================================
   VIEWER
===================================================== */

html.aulo-host-aulopolis .aulo-card-cinema-viewer {
    position: fixed !important;

    top: 50% !important;
    left: 50% !important;

    z-index: var(--aulo-cinema-z-viewer) !important;

    width: min(520px, 82vw) !important;
    aspect-ratio: 3 / 4 !important;

    opacity: 0 !important;
    pointer-events: none !important;

    transform:
        translate(-50%, -50%)
        scale(.58)
        rotateX(18deg)
        rotateY(-18deg)
        rotateZ(-2deg) !important;

    transform-style: preserve-3d !important;

    filter:
        drop-shadow(0 0 28px rgba(34, 211, 238, .38))
        drop-shadow(0 0 90px rgba(124, 58, 237, .34)) !important;

    transition:
        opacity .28s ease,
        transform .72s cubic-bezier(.16, 1, .3, 1),
        filter .72s ease !important;
}

html.aulo-host-aulopolis .aulo-card-cinema-viewer.show {
    opacity: 1 !important;
    pointer-events: none !important;

    transform:
        translate(-50%, -50%)
        scale(1)
        rotateX(0deg)
        rotateY(0deg)
        rotateZ(0deg) !important;
}

/* =====================================================
   CARD BASE — AISLADA DE ROUTE-CARD GLOBAL
===================================================== */

html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-card {
    position: relative !important;

    width: 100% !important;
    height: 100% !important;

    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;

    padding: 0 !important;
    margin: 0 !important;

    display: block !important;

    border-radius: var(--aulo-cinema-radius) !important;
    overflow: hidden !important;

    background:
        linear-gradient(
            180deg,
            rgba(15, 23, 42, .96),
            rgba(2, 6, 23, .99)
        ) !important;

    border: 1px solid rgba(125, 211, 252, .34) !important;

    box-shadow:
        0 40px 120px rgba(0, 0, 0, .70),
        0 0 44px rgba(34, 211, 238, .40),
        0 0 120px rgba(124, 58, 237, .34),
        inset 0 0 28px rgba(255, 255, 255, .08) !important;

    transform: none !important;
    isolation: isolate !important;
    box-sizing: border-box !important;
}

/* Aura giratoria */
html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-card::before {
    content: "" !important;

    position: absolute !important;
    inset: -42% !important;

    z-index: 3 !important;
    pointer-events: none !important;

    background:
        conic-gradient(
            from 0deg,
            transparent,
            rgba(34, 211, 238, .32),
            transparent,
            rgba(124, 58, 237, .34),
            transparent
        ) !important;

    opacity: .34 !important;
    filter: blur(18px) !important;

    animation: auloPortalSpin 4s linear infinite !important;
}

/* Shine legendario */
html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-card::after {
    content: "" !important;

    position: absolute !important;
    inset: 0 !important;

    z-index: 12 !important;
    pointer-events: none !important;

    background:
        linear-gradient(
            115deg,
            transparent 0%,
            rgba(255, 255, 255, .10) 32%,
            rgba(34, 211, 238, .28) 48%,
            rgba(255, 255, 255, .08) 58%,
            transparent 76%
        ) !important;

    animation: auloLegendaryReveal 1.2s ease forwards !important;
}

/* =====================================================
   IMAGE
===================================================== */

html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-image {
    position: absolute !important;
    inset: 0 !important;

    z-index: 1 !important;

    width: 100% !important;
    height: 100% !important;

    overflow: hidden !important;
}

html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-image img {
    width: 100% !important;
    height: 100% !important;

    display: block !important;

    object-fit: cover !important;
    object-position: center center !important;

    transform: scale(1.10) !important;

    filter:
        brightness(1.15)
        contrast(1.16)
        saturate(1.22) !important;

    animation: auloImageBreath 3.8s ease-in-out infinite !important;
}

/* =====================================================
   OVERLAY
===================================================== */

html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-overlay {
    position: absolute !important;
    inset: 0 !important;

    z-index: 5 !important;

    width: 100% !important;
    height: 100% !important;

    background:
        radial-gradient(
            circle at 50% 35%,
            transparent 0%,
            rgba(0, 0, 0, .12) 36%,
            rgba(0, 0, 0, .62) 100%
        ),
        linear-gradient(
            to top,
            rgba(0, 0, 0, .88),
            rgba(0, 0, 0, .34) 42%,
            transparent 68%
        ) !important;
}

/* =====================================================
   CONTENT HUD
===================================================== */

html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-content {
    position: absolute !important;

    left: 34px !important;
    right: 34px !important;
    bottom: 34px !important;

    z-index: 30 !important;

    width: auto !important;
    height: auto !important;

    padding: 0 !important;
    margin: 0 !important;

    display: block !important;

    text-align: left !important;

    transform: none !important;
}

html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-number {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-width: 58px !important;
    height: 40px !important;

    margin: 0 0 18px 0 !important;
    padding: 0 16px !important;

    border-radius: 999px !important;

    background: rgba(34, 211, 238, .14) !important;
    border: 1px solid rgba(34, 211, 238, .44) !important;

    color: #dffbff !important;

    font-size: 18px !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;

    box-shadow:
        0 0 24px rgba(34, 211, 238, .32),
        inset 0 1px 0 rgba(255, 255, 255, .12) !important;
}

html.aulo-host-aulopolis .aulo-card-cinema-viewer h3 {
    margin: 0 !important;

    font-size: clamp(28px, 3vw, 42px) !important;
    line-height: 1 !important;
    font-weight: 950 !important;

    color: #ffffff !important;

    text-shadow:
        0 0 18px rgba(34, 211, 238, .38),
        0 0 34px rgba(124, 58, 237, .30) !important;
}

html.aulo-host-aulopolis .aulo-card-cinema-viewer p {
    display: block !important;

    margin: 10px 0 0 0 !important;

    font-size: 16px !important;
    line-height: 1.45 !important;
    font-weight: 600 !important;

    color: rgba(255, 255, 255, .82) !important;
}

/* =====================================================
   PROGRESS
===================================================== */

html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-progress {
    position: relative !important;

    width: 100% !important;
    height: 8px !important;

    margin: 20px 0 0 0 !important;

    border-radius: 999px !important;
    overflow: hidden !important;

    background: rgba(255, 255, 255, .13) !important;

    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, .08),
        inset 0 0 14px rgba(0, 0, 0, .45) !important;
}

html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-progress span {
    display: block !important;

    height: 100% !important;

    border-radius: inherit !important;

    background:
        linear-gradient(
            90deg,
            var(--aulo-cinema-cyan),
            var(--aulo-cinema-purple),
            var(--aulo-cinema-pink)
        ) !important;

    box-shadow:
        0 0 20px rgba(34, 211, 238, .55) !important;
}

/* =====================================================
   PARTICLES
===================================================== */

html.aulo-host-aulopolis .aulo-card-cinema-particles {
    position: fixed !important;
    inset: 0 !important;

    z-index: var(--aulo-cinema-z-particles) !important;

    pointer-events: none !important;
    opacity: 0 !important;

    background-image:
        radial-gradient(circle, rgba(255, 255, 255, .85) 1px, transparent 2px),
        radial-gradient(circle, rgba(34, 211, 238, .75) 1px, transparent 2px),
        radial-gradient(circle, rgba(124, 58, 237, .75) 1px, transparent 2px) !important;

    background-size:
        120px 120px,
        180px 180px,
        260px 260px !important;

    background-position:
        0 0,
        40px 70px,
        90px 30px !important;

    transition: opacity .35s ease !important;

    animation: auloParticlesDrift 18s linear infinite !important;
}

html.aulo-host-aulopolis .aulo-card-cinema-particles.show {
    opacity: .28 !important;
}

/* =====================================================
   FIX FINAL — TODA LA CARD DISPARA EL HOVER
===================================================== */

html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * {
    position: relative !important;
    display: flex !important;

    pointer-events: auto !important;
    cursor: pointer !important;

    box-sizing: border-box !important;
}

/* La card interna debe llenar todo el alto/ancho visual */
html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * > *,
html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * .route-card {
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;

    display: flex !important;
    flex-direction: column !important;

    pointer-events: auto !important;
    cursor: pointer !important;

    box-sizing: border-box !important;
}

/* Los elementos internos NO deben cortar el hover */
html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * .route-image,
html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * .route-overlay,
html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * .route-content,
html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * .route-number,
html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * h3,
html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * p,
html.aulo-host-aulopolis .aulopolis-routes-section .hero-routes > * .route-progress {
    pointer-events: none !important;
}

/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    html.aulo-host-aulopolis .aulo-card-cinema-viewer {
        width: min(390px, calc(100vw - 26px)) !important;
        aspect-ratio: 3 / 4.45 !important;
    }

    html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-card {
        border-radius: 26px !important;
    }

    html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-content {
        left: 24px !important;
        right: 24px !important;
        bottom: 28px !important;
    }

    html.aulo-host-aulopolis .aulo-card-cinema-viewer h3 {
        font-size: clamp(25px, 8vw, 34px) !important;
    }

    html.aulo-host-aulopolis .aulo-card-cinema-viewer p {
        font-size: 14px !important;
    }
}

/* =====================================================
   MOTION SAFE
===================================================== */

@media (prefers-reduced-motion: reduce) {

    html.aulo-host-aulopolis .aulo-card-cinema-viewer,
    html.aulo-host-aulopolis .aulo-card-cinema-backdrop,
    html.aulo-host-aulopolis .aulo-card-cinema-particles,
    html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-card::before,
    html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-card::after,
    html.aulo-host-aulopolis .aulo-card-cinema-viewer .route-image img {
        animation: none !important;
        transition: none !important;
    }
}

/* =====================================================
   KEYFRAMES
===================================================== */

@keyframes auloPortalSpin {
    from {
        transform: rotate(0deg) scale(1);
    }

    to {
        transform: rotate(360deg) scale(1.04);
    }
}

@keyframes auloLegendaryReveal {
    0% {
        transform: translateX(-140%) skewX(-18deg);
        opacity: 0;
    }

    20% {
        opacity: 1;
    }

    100% {
        transform: translateX(140%) skewX(-18deg);
        opacity: 0;
    }
}

@keyframes auloImageBreath {
    0%,
    100% {
        transform: scale(1.10);
    }

    50% {
        transform: scale(1.16);
    }
}

@keyframes auloParticlesDrift {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        transform: translate3d(-120px, -180px, 0);
    }
}

/* =========================================
   CYBER THREAT LAB — 3 COLUMNAS DESKTOP
========================================= */

.cyber-threat-grid {
    display: grid !important;
    grid-template-columns: 1.05fr .85fr 1fr !important;
    gap: 28px !important;
    align-items: stretch !important;
}

.cyber-radar-panel,
.cyber-soc-panel,
.cyber-incident-box {
    width: 100% !important;
    min-width: 0 !important;
}

/* Tercera columna */
.cyber-incident-box {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;

    padding: 26px !important;
    border-radius: 28px !important;

    background:
        linear-gradient(145deg, rgba(7, 12, 28, .92), rgba(3, 8, 18, .96)) !important;

    border: 1px solid rgba(34, 211, 238, .22) !important;

    box-shadow:
        0 24px 70px rgba(0, 0, 0, .48),
        inset 0 0 28px rgba(255, 255, 255, .035),
        0 0 42px rgba(34, 211, 238, .10) !important;

    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

/* Responsive */
@media (max-width: 1200px) {
    .cyber-threat-grid {
        grid-template-columns: 1fr 1fr !important;
    }

    .cyber-incident-box {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 768px) {
    .cyber-threat-grid {
        grid-template-columns: 1fr !important;
    }

    .cyber-incident-box {
        grid-column: auto !important;
    }
}

/* =========================================
   AULÓPOLIS CORE GATEWAY 3D — CLEAN MODE
========================================= */

.aulo-game-core-section {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 820px;
    overflow: hidden;
    isolation: isolate;

    background:
        radial-gradient(circle at 50% 42%, rgba(34, 211, 238, .10), transparent 24%),
        radial-gradient(circle at 72% 70%, rgba(124, 58, 237, .13), transparent 40%),
        radial-gradient(circle at 20% 20%, rgba(236, 72, 153, .07), transparent 34%),
        linear-gradient(180deg, #02040c 0%, #050816 52%, #01030a 100%);
}

#auloGameCanvas {
    position: absolute;
    inset: 0;
    z-index: 1;
}

#auloGameCanvas canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

/* HUD superior */
.aulo-game-hud {
    position: absolute;
    top: 34px;
    left: 34px;
    z-index: 10;

    width: min(430px, calc(100% - 68px));
    padding: 20px 24px;
    border-radius: 24px;

    color: #ffffff;

    background:
        linear-gradient(145deg, rgba(3, 7, 18, .70), rgba(15, 23, 42, .48));

    border: 1px solid rgba(34, 211, 238, .24);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    box-shadow:
        0 24px 70px rgba(0, 0, 0, .48),
        inset 0 0 24px rgba(255, 255, 255, .045),
        0 0 42px rgba(34, 211, 238, .10);
}

.aulo-game-hud span {
    display: block;
    margin-bottom: 8px;

    font-size: 11px;
    font-weight: 900;
    letter-spacing: .16em;
    color: #67e8f9;
}

.aulo-game-hud strong {
    display: block;

    font-size: clamp(24px, 3vw, 38px);
    line-height: 1;
    color: #ffffff;

    text-shadow:
        0 0 22px rgba(34, 211, 238, .28),
        0 0 60px rgba(124, 58, 237, .18);
}

.aulo-game-hud small {
    display: block;
    margin-top: 10px;

    font-size: 13px;
    line-height: 1.45;
    color: rgba(226, 232, 240, .76);
}

/* Prompt de interacción */
.aulo-interact-prompt {
    position: absolute;
    left: 50%;
    bottom: 120px;
    z-index: 12;

    transform: translateX(-50%) scale(.92);
    opacity: 0;
    pointer-events: none;

    padding: 15px 24px;
    border-radius: 999px;

    color: #ffffff;
    font-size: 15px;
    font-weight: 800;

    background: rgba(3, 7, 18, .78);
    border: 1px solid rgba(34, 211, 238, .34);

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);

    box-shadow:
        0 0 28px rgba(34, 211, 238, .20),
        0 18px 50px rgba(0, 0, 0, .42);

    transition:
        opacity .25s ease,
        transform .25s ease;
}

.aulo-interact-prompt.show {
    opacity: 1;
    transform: translateX(-50%) scale(1);
}

.aulo-interact-prompt strong {
    color: #22d3ee;
}

/* HUD inferior */
.aulo-game-status {
    position: absolute;
    left: 50%;
    bottom: 32px;
    z-index: 10;

    transform: translateX(-50%);

    display: flex;
    gap: 12px;

    padding: 12px;
    border-radius: 24px;

    background: rgba(3, 7, 18, .64);
    border: 1px solid rgba(34, 211, 238, .20);

    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);

    box-shadow:
        0 18px 55px rgba(0, 0, 0, .44),
        inset 0 0 24px rgba(255, 255, 255, .04);
}

.aulo-game-status div {
    min-width: 120px;
    padding: 12px 16px;
    border-radius: 18px;

    background: rgba(15, 23, 42, .58);
    border: 1px solid rgba(255, 255, 255, .08);
}

.aulo-game-status span {
    display: block;

    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(148, 163, 184, .88);
}

.aulo-game-status strong {
    display: block;
    margin-top: 4px;

    font-size: 15px;
    color: #ffffff;
}

/* Transición portal */
body.aulo-entering-portal::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    pointer-events: none;

    background:
        radial-gradient(circle at center,
            rgba(34, 211, 238, .80),
            rgba(124, 58, 237, .55) 28%,
            rgba(1, 3, 10, 1) 76%);

    animation: auloPortalEnter .78s ease forwards;
}

@keyframes auloPortalEnter {
    0% {
        opacity: 0;
        transform: scale(.35);
        filter: blur(34px);
    }

    45% {
        opacity: 1;
        transform: scale(1);
        filter: blur(7px);
    }

    100% {
        opacity: 1;
        transform: scale(2.35);
        filter: blur(0);
    }
}

/* Mobile: dejamos apagado el 3D pesado */
@media (max-width: 768px) {
    .aulo-game-core-section {
        display: none;
    }
}


/* =========================================================
   AULÓPOLIS QUOTE STYLE
========================================================= */

.aulo-quote-section {
    position: relative;
    overflow: hidden;
    padding: 110px 20px;
    background:
        radial-gradient(circle at 20% 10%, rgba(34, 211, 238, .18), transparent 35%),
        radial-gradient(circle at 80% 20%, rgba(168, 85, 247, .18), transparent 35%),
        linear-gradient(135deg, #020617 0%, #050816 45%, #09090f 100%);
    color: #fff;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.aulo-quote-bg {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.03) 1px, transparent 1px);
    background-size: 80px 80px;
    mask-image: linear-gradient(to bottom, transparent, black 15%, black 85%, transparent);
    pointer-events: none;
}

.aulo-quote-grid {
    position: absolute;
    width: 520px;
    height: 520px;
    right: -180px;
    top: 120px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(34,211,238,.14), transparent 65%);
    filter: blur(10px);
    animation: auloFloat 8s ease-in-out infinite alternate;
}

@keyframes auloFloat {
    from {
        transform: translateY(0) rotate(0deg);
    }
    to {
        transform: translateY(40px) rotate(8deg);
    }
}

.aulo-quote-container {
    position: relative;
    z-index: 2;
    max-width: 1180px;
    margin: 0 auto;
}

.aulo-quote-hero {
    max-width: 900px;
    margin-bottom: 55px;
}

.aulo-quote-kicker,
.aulo-section-title span,
.price-label,
.quote-cta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid rgba(34,211,238,.35);
    border-radius: 999px;
    background: rgba(15, 23, 42, .7);
    color: #67e8f9;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.aulo-quote-hero h1 {
    margin: 24px 0 20px;
    font-size: clamp(42px, 7vw, 82px);
    line-height: .95;
    font-weight: 950;
    letter-spacing: -0.06em;
    background: linear-gradient(90deg, #ffffff, #67e8f9, #c084fc);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.aulo-quote-hero p {
    max-width: 760px;
    color: #cbd5e1;
    font-size: 18px;
    line-height: 1.75;
}

.aulo-quote-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}

.aulo-quote-tags span {
    padding: 10px 14px;
    border-radius: 14px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.12);
    color: #e0f2fe;
    font-size: 13px;
    font-weight: 800;
}

.aulo-quote-summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 80px;
}

.summary-card,
.scope-card,
.price-card,
.timeline-item,
.conditions-box,
.quote-cta {
    border: 1px solid rgba(255,255,255,.12);
    background:
        linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
    box-shadow: 0 24px 80px rgba(0,0,0,.28);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.summary-card {
    border-radius: 24px;
    padding: 24px;
}

.summary-card small {
    display: block;
    color: #94a3b8;
    font-size: 13px;
    margin-bottom: 10px;
}

.summary-card strong {
    display: block;
    color: #fff;
    font-size: 20px;
    line-height: 1.25;
}

.summary-card.highlight {
    border-color: rgba(34,211,238,.4);
    box-shadow: 0 0 50px rgba(34,211,238,.12);
}

.aulo-section-title {
    margin: 70px 0 28px;
    max-width: 820px;
}

.aulo-section-title h2 {
    margin: 18px 0 10px;
    font-size: clamp(32px, 4vw, 52px);
    line-height: 1;
    letter-spacing: -0.04em;
}

.aulo-section-title p {
    color: #cbd5e1;
    line-height: 1.7;
    font-size: 17px;
}

.aulo-scope-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.scope-card {
    position: relative;
    overflow: hidden;
    border-radius: 26px;
    padding: 28px;
    transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}

.scope-card::after {
    content: "";
    position: absolute;
    inset: auto -40px -70px auto;
    width: 160px;
    height: 160px;
    background: radial-gradient(circle, rgba(34,211,238,.18), transparent 65%);
}

.scope-card:hover {
    transform: translateY(-8px);
    border-color: rgba(34,211,238,.35);
    box-shadow: 0 30px 90px rgba(34,211,238,.12);
}

.scope-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: rgba(34,211,238,.12);
    border: 1px solid rgba(34,211,238,.25);
    font-size: 25px;
    margin-bottom: 20px;
}

.scope-card h3 {
    font-size: 22px;
    margin: 0 0 10px;
}

.scope-card p {
    color: #cbd5e1;
    line-height: 1.65;
    margin: 0;
}

.modules-table-wrap {
    overflow-x: auto;
    border-radius: 26px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(15,23,42,.55);
}

.modules-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 780px;
}

.modules-table th,
.modules-table td {
    padding: 18px 20px;
    text-align: left;
    border-bottom: 1px solid rgba(255,255,255,.09);
}

.modules-table th {
    color: #67e8f9;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .12em;
    background: rgba(255,255,255,.04);
}

.modules-table td {
    color: #e5e7eb;
    font-size: 15px;
}

.modules-table td:first-child {
    color: #67e8f9;
    font-weight: 900;
}

.modules-table tr:hover td {
    background: rgba(34,211,238,.055);
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.price-card {
    position: relative;
    border-radius: 30px;
    padding: 32px;
}

.price-card.featured {
    transform: scale(1.04);
    border-color: rgba(34,211,238,.5);
    box-shadow:
        0 0 0 1px rgba(34,211,238,.12),
        0 0 80px rgba(34,211,238,.16);
}

.price-card h3 {
    margin: 18px 0 10px;
    font-size: 28px;
}

.price-card p {
    color: #cbd5e1;
    line-height: 1.6;
}

.price {
    margin: 24px 0;
    font-size: 42px;
    font-weight: 950;
    letter-spacing: -0.05em;
    color: #fff;
}

.price-card ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.price-card li {
    color: #dbeafe;
    margin: 12px 0;
    padding-left: 24px;
    position: relative;
}

.price-card li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #67e8f9;
    font-weight: 900;
}

.timeline {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.timeline-item {
    border-radius: 26px;
    padding: 28px;
}

.timeline-item span {
    color: #67e8f9;
    font-weight: 900;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.timeline-item h3 {
    margin: 14px 0 10px;
    font-size: 24px;
}

.timeline-item p {
    color: #cbd5e1;
    line-height: 1.65;
}

.conditions-box {
    margin-top: 70px;
    border-radius: 32px;
    padding: 36px;
}

.conditions-box h2 {
    margin: 0 0 26px;
    font-size: 34px;
    letter-spacing: -0.04em;
}

.conditions-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
}

.conditions-grid strong {
    display: block;
    color: #67e8f9;
    margin-bottom: 8px;
}

.conditions-grid p {
    margin: 0;
    color: #cbd5e1;
    line-height: 1.65;
}

.quote-cta {
    margin-top: 70px;
    border-radius: 36px;
    padding: 46px;
    text-align: center;
    background:
        radial-gradient(circle at center top, rgba(34,211,238,.16), transparent 50%),
        linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.04));
}

.quote-cta h2 {
    margin: 20px 0 12px;
    font-size: clamp(32px, 5vw, 56px);
    letter-spacing: -0.05em;
}

.quote-cta p {
    max-width: 620px;
    margin: 0 auto 28px;
    color: #cbd5e1;
    line-height: 1.7;
}

.quote-btn {
    border: none;
    cursor: pointer;
    padding: 16px 28px;
    border-radius: 999px;
    background: linear-gradient(90deg, #22d3ee, #a855f7);
    color: white;
    font-weight: 950;
    letter-spacing: .04em;
    box-shadow: 0 20px 60px rgba(34,211,238,.22);
    transition: transform .25s ease, box-shadow .25s ease;
}

.quote-btn:hover {
    transform: translateY(-4px);
    box-shadow: 0 28px 80px rgba(168,85,247,.28);
}

.quote-result {
    display: none;
    margin: 28px auto 0;
    max-width: 640px;
    padding: 20px;
    border-radius: 22px;
    color: #e0f2fe;
    background: rgba(2,6,23,.65);
    border: 1px solid rgba(34,211,238,.25);
    line-height: 1.7;
}

.quote-result.show {
    display: block;
    animation: fadeUp .35s ease forwards;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* RESPONSIVE */
@media (max-width: 1024px) {
    .aulo-quote-summary,
    .aulo-scope-grid,
    .pricing-grid,
    .timeline {
        grid-template-columns: repeat(2, 1fr);
    }

    .price-card.featured {
        transform: none;
    }
}

@media (max-width: 720px) {
    .aulo-quote-section {
        padding: 80px 16px;
    }

    .aulo-quote-summary,
    .aulo-scope-grid,
    .pricing-grid,
    .timeline,
    .conditions-grid {
        grid-template-columns: 1fr;
    }

    .aulo-quote-hero h1 {
        font-size: 44px;
    }

    .summary-card,
    .scope-card,
    .price-card,
    .timeline-item,
    .conditions-box,
    .quote-cta {
        padding: 24px;
    }

    .price {
        font-size: 36px;
    }
}

.route-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 14px 0 10px;
}

.route-meta span {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 6px 11px;
    border-radius: 999px;

    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;

    color: #67e8f9;
    background: rgba(8, 47, 73, .55);
    border: 1px solid rgba(103, 232, 249, .28);

    box-shadow:
        0 0 16px rgba(34, 211, 238, .16),
        inset 0 0 12px rgba(34, 211, 238, .08);
}

.route-mission {
    margin: 8px 0 14px;

    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;

    color: rgba(255, 255, 255, .72);
    font-style: italic;
}

.route-mission:empty {
    display: none;
}

.route-difficulty-progress {
    width: 100% !important;
    margin-top: 18px !important;
    margin-bottom: 28px !important;
}

.route-progress-label {
    width: 100% !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;

    margin-bottom: 10px !important;

    color: rgba(226, 232, 240, .78) !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;
}

.route-progress-label strong {
    color: #67e8f9 !important;
    font-size: 24px !important;
    font-weight: 950 !important;
}

.route-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.route-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.route-type {
    padding: 12px 18px;
    border-radius: 999px;
    background: rgba(34, 211, 238, .10);
    border: 1px solid rgba(34, 211, 238, .25);
    color: #67e8f9;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.route-meta,
.route-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.route-meta span,
.route-stats span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(34, 211, 238, .10);
    border: 1px solid rgba(34, 211, 238, .25);
    color: #67e8f9;
    font-size: 24px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    box-shadow: 0 0 24px rgba(34, 211, 238, .12);
}

.route-stats {
    margin-top: 12px;
}

.route-stats span {
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .12);
    color: rgba(226, 232, 240, .92);
}

.route-mission {
    margin-top: 16px;
    color: rgba(226, 232, 240, .82);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
    font-style: italic;
}

.route-reward {
    margin-top: 16px;
    padding: 14px 16px;
    border-radius: 18px;
    background: linear-gradient(
        135deg,
        rgba(34, 211, 238, .12),
        rgba(168, 85, 247, .10)
    );
    border: 1px solid rgba(255, 255, 255, .10);
}

.route-reward small {
    display: block;
    margin-bottom: 4px;
    color: #67e8f9;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: .14em;
}

.route-reward strong {
    display: block;
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    line-height: 1.35;
}

/* =========================================
   ROUTE REWARD · MOBILE FIX
========================================= */

@media (max-width: 640px) {

    .route-reward {
        width: 100% !important;

        padding: 12px 14px !important;
        margin: 10px 0 14px 0 !important;

        border-radius: 16px !important;

        box-sizing: border-box !important;
    }

    .route-reward small {
        display: block !important;

        margin-bottom: 5px !important;

        font-size: 10px !important;
        line-height: 1.2 !important;
        font-weight: 900 !important;
        letter-spacing: .16em !important;

        color: #67e8f9 !important;
    }

    .route-reward strong {
        display: block !important;

        font-size: 13px !important;
        line-height: 1.35 !important;
        font-weight: 900 !important;

        color: #ffffff !important;
    }
}

.route-difficulty-progress {
    margin-top: 16px;
}

.route-progress-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
    color: rgba(226, 232, 240, .75);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
}

.route-progress-label strong {
    color: #67e8f9;
}

.route-cta {
    margin-top: auto;
    width: 100%;
    min-height: 66px;
    border: none;
    border-radius: 16px;
    cursor: pointer;
    background: linear-gradient(90deg, #22d3ee, #8b5cf6);
    color: #ffffff;
    font-size: 24px;
    font-weight: 950;
    letter-spacing: .12em;
    text-transform: uppercase;
    box-shadow: 0 18px 50px rgba(34, 211, 238, .22);
    transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease;
}

.route-cta:hover {
    transform: translateY(-3px);
    box-shadow: 0 24px 70px rgba(139, 92, 246, .30);
}

.route-card.locked .route-cta,
.route-cta:disabled {
    cursor: not-allowed;
    opacity: .45;
    background: linear-gradient(90deg, #334155, #111827);
    box-shadow: none;
}

/* ========================================= */
/* 🌌 DYNAMIC ROUTE NODES CENTRADOS MODIFIED */
/* 20 NODOS · DERECHA / IZQUIERDA */
/* ========================================= */

#dynamicRouteNodes {
    position: relative !important;
    width: 100% !important;
    min-height: 13200px !important;
}

/* ========================================= */
/* BLOQUE COMPLETO: NODO + CARD */
/* ========================================= */

#dynamicRouteNodes .tree-block {
    position: absolute !important;
    z-index: 9999 !important;

    display: flex !important;
    align-items: center !important;

    opacity: 1 !important;
    visibility: visible !important;

    pointer-events: auto !important;
}

/* ========================================= */
/* NODO CIRCULAR */
/* ========================================= */

#dynamicRouteNodes .city-node {
    flex: 0 0 auto !important;

    width: 200px !important;
    height: 200px !important;
}

/* ========================================= */
/* CARD */
/* ========================================= */

#dynamicRouteNodes .route-card {
    display: block !important;
    position: relative !important;

    width: 520px !important;
    min-height: 580px !important;

    left: 100px !important;

    opacity: 1 !important;
    visibility: visible !important;

    transform: none !important;

    z-index: 99999 !important;

    pointer-events: auto !important;
}

/* ========================================= */
/* DERECHA · NODOS IMPARES */
/* ========================================= */

#dynamicRouteNodes .node-1,
#dynamicRouteNodes .node-3,
#dynamicRouteNodes .node-5,
#dynamicRouteNodes .node-7,
#dynamicRouteNodes .node-9,
#dynamicRouteNodes .node-11,
#dynamicRouteNodes .node-13,
#dynamicRouteNodes .node-15,
#dynamicRouteNodes .node-17,
#dynamicRouteNodes .node-19 {
    left: calc(66% - 50px) !important;
    right: auto !important;

    transform: none !important;

    flex-direction: row !important;
}

#dynamicRouteNodes .node-1 .route-card,
#dynamicRouteNodes .node-3 .route-card,
#dynamicRouteNodes .node-5 .route-card,
#dynamicRouteNodes .node-7 .route-card,
#dynamicRouteNodes .node-9 .route-card,
#dynamicRouteNodes .node-11 .route-card,
#dynamicRouteNodes .node-13 .route-card,
#dynamicRouteNodes .node-15 .route-card,
#dynamicRouteNodes .node-17 .route-card,
#dynamicRouteNodes .node-19 .route-card {
    margin-left: 70px !important;
    margin-right: 0 !important;
}

/* ========================================= */
/* IZQUIERDA · NODOS PARES */
/* ========================================= */

#dynamicRouteNodes .node-2,
#dynamicRouteNodes .node-4,
#dynamicRouteNodes .node-6,
#dynamicRouteNodes .node-8,
#dynamicRouteNodes .node-10,
#dynamicRouteNodes .node-12,
#dynamicRouteNodes .node-14,
#dynamicRouteNodes .node-16,
#dynamicRouteNodes .node-18,
#dynamicRouteNodes .node-20 {
    right: calc(34% - 50px) !important;
    left: auto !important;

    transform: none !important;

    flex-direction: row-reverse !important;
}

#dynamicRouteNodes .node-2 .route-card,
#dynamicRouteNodes .node-4 .route-card,
#dynamicRouteNodes .node-6 .route-card,
#dynamicRouteNodes .node-8 .route-card,
#dynamicRouteNodes .node-10 .route-card,
#dynamicRouteNodes .node-12 .route-card,
#dynamicRouteNodes .node-14 .route-card,
#dynamicRouteNodes .node-16 .route-card,
#dynamicRouteNodes .node-18 .route-card,
#dynamicRouteNodes .node-20 .route-card {
    margin-right: 70px !important;
    margin-left: 0 !important;
}

/* ========================================= */
/* POSICIONES VERTICALES · 20 NODOS */
/* ========================================= */

#dynamicRouteNodes .node-1 {
    top: 170px !important;
}

#dynamicRouteNodes .node-2 {
    top: 850px !important;
}

#dynamicRouteNodes .node-3 {
    top: 1530px !important;
}

#dynamicRouteNodes .node-4 {
    top: 2210px !important;
}

#dynamicRouteNodes .node-5 {
    top: 2890px !important;
}

#dynamicRouteNodes .node-6 {
    top: 3570px !important;
}

#dynamicRouteNodes .node-7 {
    top: 4250px !important;
}

#dynamicRouteNodes .node-8 {
    top: 4930px !important;
}

#dynamicRouteNodes .node-9 {
    top: 5610px !important;
}

#dynamicRouteNodes .node-10 {
    top: 6290px !important;
}

#dynamicRouteNodes .node-11 {
    top: 6970px !important;
}

#dynamicRouteNodes .node-12 {
    top: 7650px !important;
}

#dynamicRouteNodes .node-13 {
    top: 8330px !important;
}

#dynamicRouteNodes .node-14 {
    top: 9010px !important;
}

#dynamicRouteNodes .node-15 {
    top: 9690px !important;
}

#dynamicRouteNodes .node-16 {
    top: 10370px !important;
}

#dynamicRouteNodes .node-17 {
    top: 11050px !important;
}

#dynamicRouteNodes .node-18 {
    top: 11730px !important;
}

#dynamicRouteNodes .node-19 {
    top: 12410px !important;
}

#dynamicRouteNodes .node-20 {
    top: 13090px !important;
}

/* ========================================= */
/* 💻 LAPTOPS / PC MEDIANOS */
/* 1024px - 1439px */
/* ========================================= */

@media (min-width: 1024px) and (max-width: 1439px) {

    #dynamicRouteNodes {
        min-height: 13200px !important;
    }

    .ai-route-world #dynamicRouteNodes .tree-block .route-card {
        width: 750px !important;
        max-width: none !important;
        min-width: 420px !important;
        flex: 0 0 420px !important;

        min-height: 960px !important;

        top: 200px !important;
    }

    /* NODOS DERECHA · IMPARES */

    #dynamicRouteNodes .node-1,
    #dynamicRouteNodes .node-3,
    #dynamicRouteNodes .node-5,
    #dynamicRouteNodes .node-7,
    #dynamicRouteNodes .node-9,
    #dynamicRouteNodes .node-11,
    #dynamicRouteNodes .node-13,
    #dynamicRouteNodes .node-15,
    #dynamicRouteNodes .node-17,
    #dynamicRouteNodes .node-19 {
        left: calc(62% - 50px) !important;
    }

    #dynamicRouteNodes .node-1 .route-card,
    #dynamicRouteNodes .node-3 .route-card,
    #dynamicRouteNodes .node-5 .route-card,
    #dynamicRouteNodes .node-7 .route-card,
    #dynamicRouteNodes .node-9 .route-card,
    #dynamicRouteNodes .node-11 .route-card,
    #dynamicRouteNodes .node-13 .route-card,
    #dynamicRouteNodes .node-15 .route-card,
    #dynamicRouteNodes .node-17 .route-card,
    #dynamicRouteNodes .node-19 .route-card {
        margin-left: 125px !important;
    }

    #dynamicRouteNodes .node-1 .city-node,
    #dynamicRouteNodes .node-3 .city-node,
    #dynamicRouteNodes .node-5 .city-node,
    #dynamicRouteNodes .node-7 .city-node,
    #dynamicRouteNodes .node-9 .city-node,
    #dynamicRouteNodes .node-11 .city-node,
    #dynamicRouteNodes .node-13 .city-node,
    #dynamicRouteNodes .node-15 .city-node,
    #dynamicRouteNodes .node-17 .city-node,
    #dynamicRouteNodes .node-19 .city-node {
        left: 550px !important;
        right: auto !important;

        top: 130px !important;
    }

    /* NODOS IZQUIERDA · PARES */

    #dynamicRouteNodes .node-2,
    #dynamicRouteNodes .node-4,
    #dynamicRouteNodes .node-6,
    #dynamicRouteNodes .node-8,
    #dynamicRouteNodes .node-10,
    #dynamicRouteNodes .node-12,
    #dynamicRouteNodes .node-14,
    #dynamicRouteNodes .node-16,
    #dynamicRouteNodes .node-18,
    #dynamicRouteNodes .node-20 {
        right: calc(38% - 50px) !important;
    }

    #dynamicRouteNodes .node-2 .route-card,
    #dynamicRouteNodes .node-4 .route-card,
    #dynamicRouteNodes .node-6 .route-card,
    #dynamicRouteNodes .node-8 .route-card,
    #dynamicRouteNodes .node-10 .route-card,
    #dynamicRouteNodes .node-12 .route-card,
    #dynamicRouteNodes .node-14 .route-card,
    #dynamicRouteNodes .node-16 .route-card,
    #dynamicRouteNodes .node-18 .route-card,
    #dynamicRouteNodes .node-20 .route-card {
        margin-right: 125px !important;
    }

    #dynamicRouteNodes .node-2 .city-node,
    #dynamicRouteNodes .node-4 .city-node,
    #dynamicRouteNodes .node-6 .city-node,
    #dynamicRouteNodes .node-8 .city-node,
    #dynamicRouteNodes .node-10 .city-node,
    #dynamicRouteNodes .node-12 .city-node,
    #dynamicRouteNodes .node-14 .city-node,
    #dynamicRouteNodes .node-16 .city-node,
    #dynamicRouteNodes .node-18 .city-node,
    #dynamicRouteNodes .node-20 .city-node {
        right: 250px !important;
        left: auto !important;

        top: 130px !important;
    }
}

/* ========================================= */
/* 🖥️ PANTALLAS GRANDES */
/* min-width: 1440px */
/* ========================================= */

@media (min-width: 1440px) {

    #dynamicRouteNodes {
        min-height: 13600px !important;
    }

    .ai-route-world #dynamicRouteNodes .tree-block .route-card {
        width: 720px !important;
        max-width: none !important;
        min-width: 520px !important;
        flex: 0 0 520px !important;

        min-height: 960px !important;

        top: 200px !important;
    }

    /* NODOS DERECHA · IMPARES */

    #dynamicRouteNodes .node-1,
    #dynamicRouteNodes .node-3,
    #dynamicRouteNodes .node-5,
    #dynamicRouteNodes .node-7,
    #dynamicRouteNodes .node-9,
    #dynamicRouteNodes .node-11,
    #dynamicRouteNodes .node-13,
    #dynamicRouteNodes .node-15,
    #dynamicRouteNodes .node-17,
    #dynamicRouteNodes .node-19 {
        left: calc(62% - 50px) !important;
    }

    #dynamicRouteNodes .node-1 .route-card,
    #dynamicRouteNodes .node-3 .route-card,
    #dynamicRouteNodes .node-5 .route-card,
    #dynamicRouteNodes .node-7 .route-card,
    #dynamicRouteNodes .node-9 .route-card,
    #dynamicRouteNodes .node-11 .route-card,
    #dynamicRouteNodes .node-13 .route-card,
    #dynamicRouteNodes .node-15 .route-card,
    #dynamicRouteNodes .node-17 .route-card,
    #dynamicRouteNodes .node-19 .route-card {
        margin-left: 150px !important;
        margin-right: 0 !important;
    }

    #dynamicRouteNodes .node-1 .city-node,
    #dynamicRouteNodes .node-3 .city-node,
    #dynamicRouteNodes .node-5 .city-node,
    #dynamicRouteNodes .node-7 .city-node,
    #dynamicRouteNodes .node-9 .city-node,
    #dynamicRouteNodes .node-11 .city-node,
    #dynamicRouteNodes .node-13 .city-node,
    #dynamicRouteNodes .node-15 .city-node,
    #dynamicRouteNodes .node-17 .city-node,
    #dynamicRouteNodes .node-19 .city-node {
        left: 600px !important;
        right: auto !important;

        top: 130px !important;
    }

    /* NODOS IZQUIERDA · PARES */

    #dynamicRouteNodes .node-2,
    #dynamicRouteNodes .node-4,
    #dynamicRouteNodes .node-6,
    #dynamicRouteNodes .node-8,
    #dynamicRouteNodes .node-10,
    #dynamicRouteNodes .node-12,
    #dynamicRouteNodes .node-14,
    #dynamicRouteNodes .node-16,
    #dynamicRouteNodes .node-18,
    #dynamicRouteNodes .node-20 {
        right: calc(38% - 50px) !important;
    }

    #dynamicRouteNodes .node-2 .route-card,
    #dynamicRouteNodes .node-4 .route-card,
    #dynamicRouteNodes .node-6 .route-card,
    #dynamicRouteNodes .node-8 .route-card,
    #dynamicRouteNodes .node-10 .route-card,
    #dynamicRouteNodes .node-12 .route-card,
    #dynamicRouteNodes .node-14 .route-card,
    #dynamicRouteNodes .node-16 .route-card,
    #dynamicRouteNodes .node-18 .route-card,
    #dynamicRouteNodes .node-20 .route-card {
        margin-right: 50px !important;
        margin-left: 0 !important;
    }

    #dynamicRouteNodes .node-2 .city-node,
    #dynamicRouteNodes .node-4 .city-node,
    #dynamicRouteNodes .node-6 .city-node,
    #dynamicRouteNodes .node-8 .city-node,
    #dynamicRouteNodes .node-10 .city-node,
    #dynamicRouteNodes .node-12 .city-node,
    #dynamicRouteNodes .node-14 .city-node,
    #dynamicRouteNodes .node-16 .city-node,
    #dynamicRouteNodes .node-18 .city-node,
    #dynamicRouteNodes .node-20 .city-node {
        right: 180px !important;
        left: auto !important;

        top: 130px !important;
    }
}

/* ========================================= */
/* 🧩 NORMALIZAR CONTENIDO INTERNO ROUTE CARD */
/* Todas las cards con el mismo margen visual */
/* ========================================= */

#dynamicRouteNodes .route-card {
    padding: 42px 40px !important;
    box-sizing: border-box !important;
}

/* Contenido interno */
#dynamicRouteNodes .route-content {
    width: 100% !important;
    height: 100% !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;

    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* Header: nivel + tipo */
#dynamicRouteNodes .route-topline {
    width: 100% !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 18px !important;

    margin: 0 0 26px 0 !important;
}

/* Nivel */
#dynamicRouteNodes .route-number {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;

    font-size: 64px !important;
    line-height: .95 !important;
    text-align: left !important;
}

/* Badge tipo: AI CORE / ML / etc */
#dynamicRouteNodes .route-type {
    flex: 0 0 auto !important;
    max-width: 180px !important;
    margin: 0 !important;
}

/* Título */
#dynamicRouteNodes .route-card h3 {
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
    text-align: left !important;
}

/* Texto principal */
#dynamicRouteNodes .route-card p {
    max-width: 360px !important;
    margin: 0 0 24px 0 !important;
    padding: 0 !important;
    text-align: left !important;
    font-size:26px;
}

/* Chips */
#dynamicRouteNodes .route-meta,
#dynamicRouteNodes .route-stats {
    justify-content: flex-start !important;
    align-items: flex-start !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
}

/* Misión */
#dynamicRouteNodes .route-mission {
    max-width: 370px !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
    font-size:22px;
}

/* Recompensa */
#dynamicRouteNodes .route-reward {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    box-sizing: border-box !important;
}

/* Botón */
#dynamicRouteNodes .route-cta {
    width: 100% !important;
    margin-left: 0 !important;
}


/* =========================================
🎯 MISSION POPUP - AULÓPOLIS
========================================= */

.mission-popup{

    position:fixed;

    inset:0;

    display:none;

    align-items:center;

    justify-content:center;

    padding:20px;

    background:rgba(3,10,20,.78);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    z-index:99999999;
}

.mission-popup.open{

    display:flex;
}

.mission-popup-card{

    position:relative;

    width:520px;

    max-width:100%;

    max-height:90vh;

    overflow-y:auto;

    padding:32px;

    border-radius:28px;

    background:
    linear-gradient(
        180deg,
        rgba(15,40,70,.98),
        rgba(5,12,25,.98)
    );

    border:1px solid rgba(125,211,252,.22);

    box-shadow:
    0 40px 120px rgba(0,0,0,.65),
    inset 0 1px 0 rgba(255,255,255,.08);

    color:#ffffff;
}

.mission-close{

    position:absolute;

    right:18px;

    top:18px;

    width:38px;

    height:38px;

    border:none;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    color:#ffffff;

    font-size:26px;

    line-height:38px;

    cursor:pointer;
}

.mission-header{

    margin-bottom:24px;

    padding-right:45px;
}

.mission-badge{

    display:inline-block;

    margin-bottom:12px;

    padding:8px 13px;

    border-radius:999px;

    background:rgba(56,189,248,.14);

    color:#7dd3fc;

    font-size:11px;

    font-weight:900;

    letter-spacing:1.5px;
}

.mission-header h2{

    margin:0 0 6px;

    font-size:28px;

    font-weight:900;

    letter-spacing:.4px;
}

.mission-header p{

    margin:0;

    color:#9cc8df;

    font-size:14px;
}

.mission-progress-box{

    margin-bottom:22px;

    padding:18px;

    border-radius:20px;

    background:rgba(255,255,255,.055);

    border:1px solid rgba(255,255,255,.08);
}

.mission-progress-info{

    display:flex;

    justify-content:space-between;

    margin-bottom:10px;

    font-size:13px;

    color:#bdeaff;
}

.mission-progress-info strong{

    color:#ffffff;
}

.mission-progress-bar{

    width:100%;

    height:9px;

    border-radius:999px;

    overflow:hidden;

    background:rgba(255,255,255,.12);
}

.mission-progress-bar span{

    display:block;

    height:100%;

    border-radius:999px;

    background:
    linear-gradient(
        90deg,
        #22d3ee,
        #8b5cf6
    );
}

.mission-objective,
.mission-steps{

    margin-bottom:22px;

    padding:20px;

    border-radius:22px;

    background:rgba(255,255,255,.045);

    border:1px solid rgba(255,255,255,.075);
}

.mission-objective h3,
.mission-steps h3{

    margin:0 0 10px;

    font-size:15px;

    font-weight:900;
}

.mission-objective p{

    margin:0;

    color:#d8f3ff;

    font-size:14px;

    line-height:1.6;
}

.mission-steps ul{

    margin:0;

    padding:0;

    list-style:none;
}

.mission-steps li{

    position:relative;

    padding:9px 0 9px 28px;

    color:#d6eaff;

    font-size:14px;

    line-height:1.4;
}

.mission-steps li::before{

    content:"○";

    position:absolute;

    left:0;

    top:8px;

    color:#7dd3fc;
}

.mission-steps li.done{

    color:#9fffcf;
}

.mission-steps li.done::before{

    content:"✓";

    color:#22c55e;

    font-weight:900;
}

.mission-reward{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:12px;

    margin-bottom:22px;
}

.mission-reward div{

    padding:16px;

    border-radius:18px;

    background:rgba(255,255,255,.06);

    border:1px solid rgba(255,255,255,.08);
}

.mission-reward small{

    display:block;

    margin-bottom:5px;

    color:#9cc8df;

    font-size:11px;

    text-transform:uppercase;

    letter-spacing:1px;
}

.mission-reward strong{

    font-size:15px;

    color:#ffffff;
}

.mission-btn{

    width:100%;

    height:54px;

    border:none;

    border-radius:18px;

    background:
    linear-gradient(
        135deg,
        #22d3ee,
        #7c3aed
    );

    color:#ffffff;

    font-size:14px;

    font-weight:900;

    letter-spacing:1px;

    cursor:pointer;

    box-shadow:0 15px 40px rgba(34,211,238,.22);

    transition:all .25s ease;
}

.mission-btn:hover{

    transform:translateY(-2px);

    box-shadow:0 20px 55px rgba(34,211,238,.32);
}

/* MOBILE */
@media(max-width:768px){

    .mission-popup{

        padding:14px;
    }

    .mission-popup-card{

        width:100%;

        max-height:88vh;

        padding:24px;

        border-radius:24px;
    }

    .mission-header h2{

        font-size:22px;
    }

    .mission-reward{

        grid-template-columns:1fr;
    }
}

/* ========================================= */
/* GLOBAL NEXUS RANK HUD */
/* ========================================= */

/* ========================================= */
/* GLOBAL RANK DENTRO DEL NEXUS PANEL */
/* ========================================= */

.nexus-logo {
    position: relative !important;
    z-index: 5 !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;

    text-align: center !important;
}

.nexus-global-rank {
    position: relative !important;
    right: auto !important;
    bottom: auto !important;

    width: 100% !important;
    min-width: 0 !important;

    margin-top: 16px !important;
    padding: 14px 16px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 18px !important;

    background:
        radial-gradient(
            circle at top,
            rgba(56, 189, 248, .14),
            transparent 45%
        ),
        rgba(15, 23, 42, .72) !important;

    border: 1px solid rgba(125, 211, 252, .18) !important;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .06),
        0 12px 34px rgba(0, 0, 0, .24) !important;

    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
}

.nexus-global-info {
    width: 100% !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;

    gap: 5px !important;
}

.nexus-global-info > span {
    color: #67e8f9 !important;

    font-size: 10px !important;
    font-weight: 900 !important;

    letter-spacing: .18em !important;
    text-transform: uppercase !important;
}

.nexus-global-info strong {
    color: #ffffff !important;

    font-size: 14px !important;
    font-weight: 900 !important;

    letter-spacing: .06em !important;
    text-transform: uppercase !important;
}

.nexus-global-info small {
    color: rgba(255, 255, 255, .68) !important;

    font-size: 11px !important;
    font-weight: 700 !important;
}

.nexus-global-orb {
    position: relative;

    width: 46px;
    height: 46px;

    flex: 0 0 46px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle at 35% 30%,
            #ffffff 0%,
            #a5f3fc 12%,
            #38bdf8 32%,
            #2563eb 68%,
            #020617 100%
        );

    box-shadow:
        0 0 18px rgba(56, 189, 248, .9),
        0 0 42px rgba(37, 99, 235, .45),
        inset 0 0 12px rgba(255, 255, 255, .35);

    animation: nexusPulse 3s ease-in-out infinite;
}

.nexus-global-orb::before {
    content: "";
    position: absolute;
    inset: -8px;

    border-radius: inherit;

    background:
        radial-gradient(
            circle,
            rgba(56, 189, 248, .38),
            transparent 70%
        );

    filter: blur(8px);
    z-index: -1;
}

.nexus-panel.collapsed .nexus-global-rank,
.nexus-panel.is-collapsed .nexus-global-rank {
    display: none !important;
}
@media (max-width: 768px) {

    .nexus-global-rank {
        right: 14px;
        bottom: 14px;

        min-width: 210px;
        padding: 13px 14px;

        border-radius: 18px;
    }

    .nexus-global-orb {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }

    .nexus-global-info strong {
        font-size: 12px;
    }

    .nexus-global-info small {
        font-size: 11px;
    }

}

.challenge-screen {
    width: 100%;
}

.challenge-card {
    width: 100%;
    padding: 28px;
    border-radius: 24px;

    background:
        linear-gradient(
            180deg,
            rgba(15, 23, 42, .96),
            rgba(2, 6, 23, .98)
        );

    border: 1px solid rgba(125, 211, 252, .18);

    box-shadow:
        0 20px 70px rgba(0, 0, 0, .35),
        inset 0 1px 0 rgba(255, 255, 255, .06);
}

.challenge-card h3 {
    margin: 0 0 12px 0;

    color: #ffffff;

    font-size: 26px;
    font-weight: 900;
}

.challenge-card p {
    margin: 0 0 18px 0;

    color: rgba(255, 255, 255, .72);

    font-size: 15px;
    line-height: 1.6;
}

.challenge-textarea {
    width: 100%;
    min-height: 180px;

    padding: 18px;

    border-radius: 18px;

    background: rgba(2, 6, 23, .88);

    border: 1px solid rgba(125, 211, 252, .18);

    color: #ffffff;

    font-size: 15px;
    line-height: 1.6;

    outline: none;

    resize: vertical;
}

.challenge-textarea:focus {
    border-color: rgba(34, 211, 238, .65);

    box-shadow:
        0 0 0 3px rgba(34, 211, 238, .12);
}

.challenge-actions {
    margin-top: 18px;
}

.challenge-feedback {
    margin-top: 18px;
    padding: 14px 16px;

    border-radius: 16px;

    font-size: 14px;
    font-weight: 800;
}

.challenge-feedback.success {
    color: #bbf7d0;
    background: rgba(22, 163, 74, .16);
    border: 1px solid rgba(74, 222, 128, .28);
}

.challenge-feedback.error {
    color: #fecaca;
    background: rgba(220, 38, 38, .16);
    border: 1px solid rgba(248, 113, 113, .28);
}

/* ========================================= */
/* PROMPT CHALLENGE MODAL - AISLADO */
/* ========================================= */

.prompt-challenge-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999999 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 24px !important;
}

.prompt-challenge-overlay {
    position: absolute !important;
    inset: 0 !important;

    background: rgba(2, 6, 23, .78) !important;

    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
}

.prompt-challenge-panel {
    position: relative !important;
    z-index: 2 !important;

    width: 720px !important;
    max-width: calc(100vw - 32px) !important;
    max-height: calc(100vh - 48px) !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;

    padding: 30px !important;

    border-radius: 28px !important;

    background:
        radial-gradient(
            circle at top,
            rgba(34, 211, 238, .16),
            transparent 38%
        ),
        linear-gradient(
            180deg,
            rgba(15, 23, 42, .98),
            rgba(2, 6, 23, .98)
        ) !important;

    border: 1px solid rgba(125, 211, 252, .22) !important;

    box-shadow:
        0 35px 120px rgba(0, 0, 0, .65),
        inset 0 1px 0 rgba(255, 255, 255, .08) !important;
}

.prompt-challenge-close {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;

    width: 34px !important;
    height: 34px !important;

    border-radius: 50% !important;
    border: 1px solid rgba(255, 255, 255, .16) !important;

    background: rgba(15, 23, 42, .88) !important;
    color: #ffffff !important;

    font-size: 18px !important;
    font-weight: 900 !important;

    cursor: pointer !important;
}

.prompt-challenge-header span {
    display: inline-flex !important;

    margin-bottom: 10px !important;
    padding: 6px 12px !important;

    border-radius: 999px !important;

    background: rgba(34, 211, 238, .12) !important;
    border: 1px solid rgba(34, 211, 238, .22) !important;

    color: #67e8f9 !important;

    font-size: 10px !important;
    font-weight: 900 !important;

    letter-spacing: .16em !important;
}

.prompt-challenge-header h2 {
    margin: 0 0 8px 0 !important;

    color: #ffffff !important;

    font-size: 28px !important;
    font-weight: 900 !important;
}

.prompt-challenge-header p {
    margin: 0 0 20px 0 !important;

    color: rgba(255, 255, 255, .7) !important;

    font-size: 14px !important;
    line-height: 1.6 !important;
}

.prompt-challenge-card {
    padding: 22px !important;

    border-radius: 22px !important;

    background: rgba(2, 6, 23, .76) !important;
    border: 1px solid rgba(125, 211, 252, .18) !important;
}

.prompt-challenge-card h3 {
    margin: 0 0 14px 0 !important;

    color: #ffffff !important;

    font-size: 22px !important;
    font-weight: 900 !important;
}

.prompt-challenge-textarea {
    width: 100% !important;
    min-height: 190px !important;

    padding: 18px !important;

    border-radius: 18px !important;

    background: rgba(2, 6, 23, .94) !important;

    border: 1px solid rgba(125, 211, 252, .22) !important;

    color: #ffffff !important;

    font-size: 15px !important;
    line-height: 1.6 !important;

    outline: none !important;

    resize: vertical !important;
}

.prompt-challenge-textarea:focus {
    border-color: rgba(34, 211, 238, .75) !important;

    box-shadow:
        0 0 0 3px rgba(34, 211, 238, .12) !important;
}

.prompt-challenge-btn,
.prompt-challenge-complete {
    width: 100% !important;

    margin-top: 16px !important;
    padding: 13px 18px !important;

    border: 0 !important;
    border-radius: 14px !important;

    background: linear-gradient(
        135deg,
        #22d3ee,
        #2563eb
    ) !important;

    color: #ffffff !important;

    font-size: 13px !important;
    font-weight: 900 !important;

    letter-spacing: .08em !important;

    cursor: pointer !important;
}

.prompt-challenge-complete {
    background: linear-gradient(
        135deg,
        #22c55e,
        #16a34a
    ) !important;
}

.prompt-challenge-feedback {
    margin-top: 16px !important;
    padding: 14px 16px !important;

    border-radius: 16px !important;

    font-size: 14px !important;
    font-weight: 800 !important;
}

.prompt-challenge-feedback.success {
    color: #bbf7d0 !important;
    background: rgba(22, 163, 74, .16) !important;
    border: 1px solid rgba(74, 222, 128, .28) !important;
}

.prompt-challenge-feedback.error {
    color: #fecaca !important;
    background: rgba(220, 38, 38, .16) !important;
    border: 1px solid rgba(248, 113, 113, .28) !important;
}

@media (max-width: 640px) {

    .prompt-challenge-modal {
        align-items: flex-start !important;
        padding: 14px !important;
    }

    .prompt-challenge-panel {
        width: 100% !important;
        max-height: calc(100vh - 28px) !important;

        padding: 22px 16px !important;

        border-radius: 22px !important;
    }

    .prompt-challenge-header h2 {
        font-size: 22px !important;
    }

}

/* ========================================= */
/* PROMPT SLIDES · ESTILO GAMMA AULÓPOLIS */
/* ========================================= */

.prompt-slides-box {
    width: 100% !important;
    margin-top: 22px !important;
}

.prompt-slides-top {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    margin-bottom: 14px !important;
}

.prompt-slides-top span {
    color: #67e8f9 !important;

    font-size: 11px !important;
    font-weight: 900 !important;

    letter-spacing: .16em !important;
}

.prompt-slides-top small {
    color: rgba(255, 255, 255, .65) !important;

    font-size: 12px !important;
    font-weight: 800 !important;
}

.prompt-slide-card {
    position: relative !important;

    min-height: 310px !important;

    padding: 34px !important;

    border-radius: 28px !important;

    background:
        radial-gradient(
            circle at top right,
            rgba(34, 211, 238, .16),
            transparent 38%
        ),
        linear-gradient(
            180deg,
            rgba(15, 23, 42, .96),
            rgba(2, 6, 23, .98)
        ) !important;

    border: 1px solid rgba(125, 211, 252, .22) !important;

    box-shadow:
        0 24px 80px rgba(0, 0, 0, .42),
        inset 0 1px 0 rgba(255, 255, 255, .08) !important;

    overflow: hidden !important;
}

.prompt-slide-icon {
    width: 74px !important;
    height: 74px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin-bottom: 22px !important;

    border-radius: 24px !important;

    background: rgba(15, 23, 42, .88) !important;

    font-size: 38px !important;
}

.prompt-slide-subtitle {
    display: inline-flex !important;

    margin-bottom: 10px !important;

    color: #67e8f9 !important;

    font-size: 12px !important;
    font-weight: 900 !important;

    letter-spacing: .12em !important;
    text-transform: uppercase !important;
}

.prompt-slide-card h3 {
    margin: 0 0 14px 0 !important;

    color: #ffffff !important;

    font-size: 34px !important;
    font-weight: 950 !important;

    line-height: 1.05 !important;
}

.prompt-slide-card p {
    max-width: 620px !important;

    margin: 0 !important;

    color: rgba(255, 255, 255, .76) !important;

    font-size: 17px !important;
    line-height: 1.65 !important;
}

.prompt-slide-progress {
    width: 100% !important;
    height: 8px !important;

    margin-top: 16px !important;

    border-radius: 999px !important;

    background: rgba(255, 255, 255, .08) !important;

    overflow: hidden !important;
}

.prompt-slide-progress span {
    display: block !important;

    height: 100% !important;

    border-radius: inherit !important;

    background: linear-gradient(
        90deg,
        #22d3ee,
        #a855f7,
        #22c55e
    ) !important;

    transition: width .35s ease !important;
}

.prompt-slide-actions {
    display: flex !important;
    gap: 12px !important;

    margin-top: 18px !important;
}

.prompt-slide-btn {
    flex: 1 !important;

    padding: 14px 18px !important;

    border: 0 !important;
    border-radius: 16px !important;

    background: linear-gradient(
        135deg,
        #22d3ee,
        #2563eb
    ) !important;

    color: #ffffff !important;

    font-size: 13px !important;
    font-weight: 900 !important;

    letter-spacing: .08em !important;

    cursor: pointer !important;
}

.prompt-slide-btn.ghost {
    background: rgba(255, 255, 255, .08) !important;

    border: 1px solid rgba(255, 255, 255, .12) !important;
}

.prompt-slide-btn.success {
    background: linear-gradient(
        135deg,
        #22c55e,
        #16a34a
    ) !important;
}

.prompt-slide-btn:disabled {
    opacity: .35 !important;
    cursor: not-allowed !important;
}

.prompt-slides-empty {
    padding: 22px !important;

    border-radius: 20px !important;

    background: rgba(15, 23, 42, .8) !important;

    border: 1px solid rgba(125, 211, 252, .18) !important;

    color: #ffffff !important;
}

@media (max-width: 640px) {

    .prompt-slide-card {
        min-height: 260px !important;
        padding: 24px 18px !important;
        border-radius: 22px !important;
    }

    .prompt-slide-card h3 {
        font-size: 25px !important;
    }

    .prompt-slide-card p {
        font-size: 15px !important;
    }

    .prompt-slide-actions {
        flex-direction: column !important;
    }

}

.ai-mission-panel .prompt-slides-box {
    margin-bottom: 26px !important;
}

.ai-mission-panel .ai-quiz-btn {
    margin-top: 18px !important;
}

/* =========================================
   AULÓPOLIS MATCHING QUEST
========================================= */

.matching-modal {
    position: fixed;
    inset: 0;
    z-index: 99999999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.matching-overlay {
    position: absolute;
    inset: 0;
    background: rgba(3, 8, 20, .78);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.matching-panel {
    position: relative;
    z-index: 2;

    width: 920px;
    max-width: calc(100% - 28px);
    max-height: calc(100vh - 40px);
    overflow-y: auto;

    padding: 34px;
    border-radius: 30px;

    background:
        radial-gradient(circle at top left, rgba(34, 211, 238, .18), transparent 34%),
        linear-gradient(180deg, rgba(15, 23, 42, .98), rgba(2, 6, 23, .98));

    border: 1px solid rgba(125, 211, 252, .25);

    box-shadow:
        0 40px 120px rgba(0, 0, 0, .65),
        inset 0 1px 0 rgba(255, 255, 255, .08);

    color: #fff;
}

.matching-close {
    position: absolute;
    top: 18px;
    right: 20px;

    width: 42px;
    height: 42px;

    border: 0;
    border-radius: 50%;

    background: rgba(15, 23, 42, .9);
    color: #fff;

    font-size: 24px;
    cursor: pointer;
}

.matching-header {
    text-align: center;
    margin-bottom: 28px;
}

.matching-header span {
    display: inline-block;
    margin-bottom: 10px;

    font-size: 12px;
    font-weight: 900;
    letter-spacing: 2px;

    color: #67e8f9;
}

.matching-header h2 {
    margin: 0 0 10px;
    font-size: 34px;
    font-weight: 900;
    color: #fff;
}

.matching-header p {
    margin: 0 auto;
    max-width: 640px;

    font-size: 16px;
    line-height: 1.6;
    color: rgba(226, 232, 240, .82);
}

.matching-board {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.matching-row {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 16px;
    align-items: center;

    padding: 16px;
    border-radius: 20px;

    background: rgba(15, 23, 42, .72);
    border: 1px solid rgba(148, 163, 184, .18);
}

.matching-concept {
    min-height: 58px;

    display: flex;
    align-items: center;

    padding: 14px 16px;
    border-radius: 16px;

    background: linear-gradient(135deg, rgba(34, 211, 238, .16), rgba(59, 130, 246, .12));
    border: 1px solid rgba(34, 211, 238, .25);

    font-size: 15px;
    font-weight: 900;
    color: #e0faff;
}

.matching-select {
    width: 100%;
    min-height: 58px;

    padding: 0 16px;
    border-radius: 16px;

    background: rgba(2, 6, 23, .88);
    border: 1px solid rgba(148, 163, 184, .28);

    color: #fff;
    font-size: 14px;
    line-height: 1.4;

    outline: none;
    cursor: pointer;
}

.matching-select:focus {
    border-color: rgba(34, 211, 238, .75);
    box-shadow: 0 0 0 3px rgba(34, 211, 238, .14);
}

.matching-btn,
.matching-complete {
    width: 100%;
    margin-top: 22px;

    padding: 17px 22px;
    border: 0;
    border-radius: 18px;

    font-size: 14px;
    font-weight: 900;
    letter-spacing: 1px;

    cursor: pointer;
}

.matching-btn {
    background: linear-gradient(135deg, #22d3ee, #3b82f6);
    color: #020617;
    box-shadow: 0 18px 40px rgba(34, 211, 238, .22);
}

.matching-complete {
    background: linear-gradient(135deg, #22c55e, #84cc16);
    color: #052e16;
    box-shadow: 0 18px 40px rgba(34, 197, 94, .25);
}

.matching-feedback {
    margin-top: 18px;
    padding: 16px 18px;

    border-radius: 18px;

    font-size: 15px;
    font-weight: 800;
    line-height: 1.5;
}

.matching-feedback.success {
    background: rgba(34, 197, 94, .14);
    border: 1px solid rgba(34, 197, 94, .35);
    color: #bbf7d0;
}

.matching-feedback.error {
    background: rgba(239, 68, 68, .14);
    border: 1px solid rgba(239, 68, 68, .35);
    color: #fecaca;
}

/* MOBILE */
@media (max-width: 768px) {

    .matching-panel {
        padding: 24px 18px;
        border-radius: 24px;
    }

    .matching-header h2 {
        font-size: 26px;
    }

    .matching-row {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 14px;
    }

    .matching-concept,
    .matching-select {
        min-height: 54px;
        font-size: 14px;
    }
}

/* =========================================
   NEXUS CINEMATIC TRANSITION
========================================= */

.nexus-cinematic-pulse {
    position: relative !important;
    z-index: 9999 !important;

    animation: nexusPulseUnlock 1.2s ease-in-out infinite !important;

    filter:
        drop-shadow(0 0 20px rgba(34, 211, 238, .9))
        drop-shadow(0 0 50px rgba(59, 130, 246, .7)) !important;
}

@keyframes nexusPulseUnlock {

    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.13);
        opacity: .92;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }

}

.singularity-nexus-btn {
    padding: 15px 28px;
    border: 0;
    border-radius: 18px;

    background: linear-gradient(135deg, #22d3ee, #3b82f6);
    color: #020617;

    font-size: 14px;
    font-weight: 900;
    letter-spacing: 1px;

    cursor: pointer;

    box-shadow:
        0 18px 45px rgba(34, 211, 238, .35),
        inset 0 1px 0 rgba(255, 255, 255, .35);
}

.singularity-nexus-btn:hover {
    transform: translateY(-2px);
    box-shadow:
        0 24px 60px rgba(34, 211, 238, .48),
        inset 0 1px 0 rgba(255, 255, 255, .42);
}

.prompt-challenge-note {
    margin: 10px 0 0;
    font-size: 13px;
    font-weight: 700;
    color: rgba(226, 232, 240, .68);
}

.ai-rank-core {
    width: 86px;
    height: 86px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background:
        radial-gradient(
            circle at 30% 25%,
            rgba(255,255,255,.95),
            rgba(34,211,238,.65) 18%,
            rgba(59,130,246,.45) 48%,
            rgba(15,23,42,.95) 100%
        );

    color: #ffffff;

    font-size: 34px;

    box-shadow:
        0 0 24px rgba(34,211,238,.65),
        0 0 70px rgba(59,130,246,.35),
        inset 0 0 18px rgba(255,255,255,.28);

    animation: aiRankCorePulse 2.4s ease-in-out infinite;
}

@keyframes aiRankCorePulse {

    0% {
        transform: scale(1);
        box-shadow:
            0 0 18px rgba(34,211,238,.45),
            0 0 48px rgba(59,130,246,.22),
            inset 0 0 14px rgba(255,255,255,.2);
    }

    50% {
        transform: scale(1.08);
        box-shadow:
            0 0 30px rgba(34,211,238,.85),
            0 0 90px rgba(59,130,246,.48),
            inset 0 0 22px rgba(255,255,255,.38);
    }

    100% {
        transform: scale(1);
        box-shadow:
            0 0 18px rgba(34,211,238,.45),
            0 0 48px rgba(59,130,246,.22),
            inset 0 0 14px rgba(255,255,255,.2);
    }
}
/* =========================================================
   AULÓPOLIS ROBOT LOTTIE - CLEAN VERSION
========================================================= */

.aulo-route-lottie-side {
    --robot-x: 0px;
    --robot-y: 0px;

    position: absolute;
    left: calc(100% + 25px);
    top: 48%;

    width: 390px;
    height: 390px;

    z-index: 999999999 !important;

    pointer-events: auto !important;
    cursor: pointer !important;

    background: transparent !important;

    transform:
        translateY(-50%)
        translateX(var(--robot-x))
        translateY(var(--robot-y));

    animation: auloRouteLottieFloat 4s ease-in-out infinite;
}

/* =========================================================
   IFRAME LOTTIE
========================================================= */

.aulo-route-lottie-side iframe {
    width: 100%;
    height: 100%;

    display: block;

    border: 0;
    background: transparent !important;

    pointer-events: none !important;
}

/* =========================================================
   JSON LOTTIE
========================================================= */

#auloRobotLottie {
    width: 100%;
    height: 100%;

    display: block;

    background: transparent !important;

    pointer-events: none !important;
}

#auloRobotLottie svg {
    width: 100% !important;
    height: 100% !important;

    display: block !important;

    background: transparent !important;

    pointer-events: none !important;
}

/* =========================================================
   ROBOT CLICK AREA
========================================================= */

#auloRobotCompanion,
.aulo-route-lottie-side {
    pointer-events: auto !important;
    cursor: pointer !important;
    z-index: 999999999 !important;
}

/* =========================================================
   FLOATING AI BUTTON
========================================================= */

.floating-ai-btn {
    pointer-events: auto !important;
    cursor: pointer !important;
    z-index: 999999998 !important;
}

/* =========================================================
   EVITA QUE EL ROBOT SE CORTE
========================================================= */

.route-card,
.aulo-icore-card-host,
#dynamicRouteNodes {
    overflow: visible !important;
}

/* =========================================================
   PANEL AI TUTOR
========================================================= */

#aiTutorPanel.show {
    right: 0px !important;
}

/* =========================================================
   REMOVE EXTRA ROBOT PSEUDO ELEMENTS
========================================================= */

.aulo-route-lottie-side::before,
.aulo-route-lottie-side::after,
#auloRobotCompanion::before,
#auloRobotCompanion::after,
#auloRobotLottie::before,
#auloRobotLottie::after {
    content: none !important;
    display: none !important;
    background: none !important;
    animation: none !important;
}

/* =========================================================
   FLOTACIÓN SUAVE DEL ROBOT
========================================================= */

@keyframes auloRouteLottieFloat {
    0% {
        margin-top: 0;
    }

    50% {
        margin-top: -14px;
    }

    100% {
        margin-top: 0;
    }
}

/* =========================================================
   CALL AULO ROBOT BUTTON · ICON OUTLINE CINEMATIC
   Mismo botón: llamar / ocultar Sam
========================================================= */

#callAuloRobotBtn.call-aulo-robot-btn {
    position: fixed !important;

    right: 28px !important;
    bottom: 28px !important;

    left: auto !important;
    top: auto !important;

    width: 64px !important;
    height: 64px !important;

    min-width: 64px !important;
    max-width: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 50% !important;

    font-size: 0 !important;
    line-height: 1 !important;

    color: transparent !important;

    cursor: pointer !important;

    z-index: 100000000 !important;

    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;

    background:
        radial-gradient(
            circle at center,
            rgba(34, 211, 238, .10),
            rgba(15, 23, 42, .86) 58%,
            rgba(2, 6, 23, .96) 100%
        ) !important;

    border: 1px solid rgba(103, 232, 249, .58) !important;

    box-shadow:
        0 0 18px rgba(34, 211, 238, .32),
        0 0 42px rgba(59, 130, 246, .22),
        0 0 84px rgba(139, 92, 246, .12),
        inset 0 1px 0 rgba(255, 255, 255, .14),
        inset 0 0 18px rgba(34, 211, 238, .10) !important;

    backdrop-filter: blur(18px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(150%) !important;

    overflow: visible !important;

    transform: translateY(0) scale(1) !important;

    animation:
        samButtonPulse 2.4s ease-in-out infinite,
        samButtonFloat 4.8s ease-in-out infinite !important;

    transition:
        transform .28s ease,
        border-color .28s ease,
        box-shadow .28s ease,
        background .28s ease !important;
}

/* Ícono principal */
#callAuloRobotBtn.call-aulo-robot-btn::before {
    content: "🤖";

    position: relative;

    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 31px !important;
    line-height: 1 !important;

    color: #ffffff !important;

    filter:
        drop-shadow(0 0 8px rgba(255, 255, 255, .68))
        drop-shadow(0 0 18px rgba(34, 211, 238, .72))
        drop-shadow(0 0 34px rgba(139, 92, 246, .48));

    z-index: 3;
}

/* Anillo exterior cinematográfico */
#callAuloRobotBtn.call-aulo-robot-btn::after {
    content: "";

    position: absolute;
    inset: -7px;

    border-radius: 50%;

    border: 1px solid rgba(103, 232, 249, .28);

    box-shadow:
        0 0 18px rgba(34, 211, 238, .24),
        inset 0 0 18px rgba(34, 211, 238, .08);

    opacity: .85;

    animation: samOuterRing 2.4s ease-in-out infinite;

    pointer-events: none;
}

/* Estado visible: mismo botón sirve para ocultar */
#callAuloRobotBtn.call-aulo-robot-btn.sam-visible {
    border-color: rgba(248, 113, 113, .62) !important;

    background:
        radial-gradient(
            circle at center,
            rgba(239, 68, 68, .16),
            rgba(15, 23, 42, .88) 58%,
            rgba(2, 6, 23, .98) 100%
        ) !important;

    box-shadow:
        0 0 18px rgba(248, 113, 113, .34),
        0 0 46px rgba(239, 68, 68, .22),
        0 0 88px rgba(139, 92, 246, .12),
        inset 0 1px 0 rgba(255, 255, 255, .14),
        inset 0 0 18px rgba(239, 68, 68, .10) !important;
}

#callAuloRobotBtn.call-aulo-robot-btn.sam-visible::before {
    content: "👋";

    font-size: 30px !important;

    filter:
        drop-shadow(0 0 8px rgba(255, 255, 255, .70))
        drop-shadow(0 0 18px rgba(248, 113, 113, .62))
        drop-shadow(0 0 34px rgba(239, 68, 68, .42));
}

/* Hover desktop */
#callAuloRobotBtn.call-aulo-robot-btn:hover {
    transform: translateY(-4px) scale(1.08) !important;

    border-color: rgba(103, 232, 249, .90) !important;

    box-shadow:
        0 0 24px rgba(34, 211, 238, .55),
        0 0 64px rgba(59, 130, 246, .36),
        0 0 110px rgba(139, 92, 246, .20),
        inset 0 1px 0 rgba(255, 255, 255, .18),
        inset 0 0 22px rgba(34, 211, 238, .14) !important;
}

#callAuloRobotBtn.call-aulo-robot-btn:active {
    transform: translateY(-1px) scale(.96) !important;
}

/* Animaciones */
@keyframes samButtonPulse {
    0%, 100% {
        box-shadow:
            0 0 18px rgba(34, 211, 238, .30),
            0 0 42px rgba(59, 130, 246, .20),
            0 0 84px rgba(139, 92, 246, .10),
            inset 0 1px 0 rgba(255, 255, 255, .14),
            inset 0 0 18px rgba(34, 211, 238, .10);
    }

    50% {
        box-shadow:
            0 0 28px rgba(34, 211, 238, .62),
            0 0 68px rgba(59, 130, 246, .34),
            0 0 120px rgba(139, 92, 246, .18),
            inset 0 1px 0 rgba(255, 255, 255, .18),
            inset 0 0 24px rgba(34, 211, 238, .16);
    }
}

@keyframes samOuterRing {
    0%, 100% {
        transform: scale(.92);
        opacity: .45;
    }

    50% {
        transform: scale(1.12);
        opacity: 1;
    }
}

@keyframes samButtonFloat {
    0%, 100% {
        translate: 0 0;
    }

    50% {
        translate: 0 -4px;
    }
}




/* =========================================================
   ROBOT ASISTENTE FLOTANTE REAL
   Fuera del nodo / fuera de la card
========================================================= */

.aulo-route-lottie-side.robot-floating-mode {
    position: fixed !important;

    /* Parte media izquierda */
    left: 290px !important;
    top: 75% !important;

    right: auto !important;
    bottom: auto !important;

    width: 260px !important;
    height: 260px !important;

    z-index: 100000 !important;

    /*
    Movimiento manual.
    OJO: este transform es solo para posición.
    */
    transform: translate(
        var(--robot-x, 0px),
        calc(-50% + var(--robot-y, 0px))
    ) !important;

    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    pointer-events: auto !important;
    cursor: pointer !important;
}

/* La animación va SOLO en el contenido interno */
.aulo-route-lottie-side.robot-floating-mode > * {
    animation: auloRouteLottieFloat 4s ease-in-out infinite !important;
}

@keyframes auloRouteLottieFloat {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-15px);
    }
}

.aulo-route-lottie-side.robot-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.aulo-route-lottie-side.robot-floating-mode {
    position: fixed !important;

    left: 340px !important;
    top: 50% !important;

    right: auto !important;
    bottom: auto !important;

    width: 260px !important;
    height: 260px !important;

    z-index: 100000 !important;

    transform: translate(
        var(--robot-x, 0px),
        calc(-50% + var(--robot-y, 0px))
    ) !important;

    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    pointer-events: auto !important;
    cursor: pointer !important;
}

.aulo-route-lottie-side.robot-floating-mode > * {
    animation: auloRouteLottieFloat 4s ease-in-out infinite !important;
}

@keyframes auloRouteLottieFloat {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-15px);
    }
}

/* =====================================================
   ROBOT — PULSACIÓN CLICKABLE
===================================================== */

.aulo-route-lottie-side.robot-floating-mode {
    border-radius: 999px !important;

    filter:
        drop-shadow(0 0 18px rgba(56, 189, 248, .45))
        drop-shadow(0 0 38px rgba(34, 211, 238, .25)) !important;

    animation:
        auloRobotClickableGlow 2.2s ease-in-out infinite !important;
}

.aulo-route-lottie-side.robot-floating-mode::before,
.aulo-route-lottie-side.robot-floating-mode::after {
    content: "";
    position: absolute;

    inset: 18px;

    border-radius: 999px;

    pointer-events: none;

    border: 2px solid rgba(56, 189, 248, .55);

    box-shadow:
        0 0 22px rgba(56, 189, 248, .45),
        inset 0 0 22px rgba(56, 189, 248, .18);

    opacity: 0;

    z-index: -1;

    animation:
        auloRobotPulseRing 2.2s ease-out infinite;
}

.aulo-route-lottie-side.robot-floating-mode::after {
    animation-delay: 1.1s;
    border-color: rgba(168, 85, 247, .48);
    box-shadow:
        0 0 24px rgba(168, 85, 247, .42),
        inset 0 0 22px rgba(168, 85, 247, .16);
}

.aulo-route-lottie-side.robot-floating-mode:hover {
    filter:
        drop-shadow(0 0 26px rgba(56, 189, 248, .75))
        drop-shadow(0 0 54px rgba(168, 85, 247, .45)) !important;
}

.aulo-route-lottie-side.robot-floating-mode:hover::before,
.aulo-route-lottie-side.robot-floating-mode:hover::after {
    animation-duration: 1.35s;
}

@keyframes auloRobotPulseRing {
    0% {
        transform: scale(.82);
        opacity: 0;
    }

    18% {
        opacity: .85;
    }

    70% {
        opacity: .22;
    }

    100% {
        transform: scale(1.42);
        opacity: 0;
    }
}

@keyframes auloRobotClickableGlow {
    0%,
    100% {
        box-shadow:
            0 0 0 rgba(56, 189, 248, 0);
    }

    50% {
        box-shadow:
            0 0 34px rgba(56, 189, 248, .28),
            0 0 70px rgba(168, 85, 247, .18);
    }
}

/* =========================================================
   AULÓPOLIS MOBILE ROUTE - LISTA VERTICAL ORDENADA FINAL
   MOBILE ONLY · NO AFECTA LAPTOP / DESKTOP
========================================================= */

@media (max-width: 640px) {

    html,
    body {
        width: 100% !important;
        height: 100% !important;
        max-width: 100vw !important;

        overflow: hidden !important;

        background: #020617 !important;

        overscroll-behavior-y: contain !important;
    }

    body {
        position: relative !important;
    }

    /* =========================================
       CONTENEDOR GENERAL MOBILE
    ========================================= */

    .ai-route-world {
        position: relative !important;

        width: 100vw !important;
        max-width: 100vw !important;

        height: 100dvh !important;
        min-height: 100dvh !important;

        overflow: hidden !important;

        background: #020617 !important;
    }

    .ai-route-world .universe-wrapper {
        position: relative !important;

        width: 100vw !important;
        max-width: 100vw !important;

        height: 100dvh !important;
        min-height: 100dvh !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        transform: none !important;
        cursor: default !important;

        touch-action: pan-y !important;
        -webkit-overflow-scrolling: touch !important;

        scroll-behavior: smooth !important;

        box-sizing: border-box !important;
    }

    .ai-route-world .universe-map {
        position: relative !important;

        width: 100% !important;
        max-width: 100vw !important;
        min-width: 0 !important;

        height: auto !important;
        min-height: auto !important;

        transform: none !important;

        overflow: visible !important;

        padding: 190px 10px 180px 10px !important;

        box-sizing: border-box !important;
    }

    /* =========================================
       LISTA VERTICAL DE NODOS
    ========================================= */

    #dynamicRouteNodes {
        position: relative !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;
        min-height: auto !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;

        gap: 16px !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: visible !important;

        transform: none !important;

        box-sizing: border-box !important;
        top:100px;
    }

    #dynamicRouteNodes .tree-block,
    #dynamicRouteNodes .node-1,
    #dynamicRouteNodes .node-2,
    #dynamicRouteNodes .node-3,
    #dynamicRouteNodes .node-4,
    #dynamicRouteNodes .node-5,
    #dynamicRouteNodes .node-6,
    #dynamicRouteNodes .node-7,
    #dynamicRouteNodes .node-8,
    #dynamicRouteNodes .node-9,
    #dynamicRouteNodes .node-10,
    #dynamicRouteNodes .node-11,
    #dynamicRouteNodes .node-12,
    #dynamicRouteNodes .node-13,
    #dynamicRouteNodes .node-14,
    #dynamicRouteNodes .node-15,
    #dynamicRouteNodes .node-16,
    #dynamicRouteNodes .node-17,
    #dynamicRouteNodes .node-18,
    #dynamicRouteNodes .node-19,
    #dynamicRouteNodes .node-20 {
        position: relative !important;

        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;
        min-height: auto !important;

        margin: 0 !important;
        padding: 0 !important;

        display: block !important;

        transform: none !important;

        opacity: 1 !important;
        visibility: visible !important;

        pointer-events: auto !important;

        box-sizing: border-box !important;
    }

    /* =========================================
       NODO / PLANETA COMO ÍCONO INTERNO
    ========================================= */

    #dynamicRouteNodes .city-node {
        position: absolute !important;

        top: 18px !important;
        left: 18px !important;

        width: 48px !important;
        height: 48px !important;

        min-width: 48px !important;
        max-width: 48px !important;

        margin: 0 !important;

        border-radius: 18px !important;

        transform: none !important;

        z-index: 20 !important;

        pointer-events: auto !important;
    }

    #dynamicRouteNodes .node-text {
        display: none !important;
    }

    #dynamicRouteNodes .planet-core {
        width: 100% !important;
        height: 100% !important;
    }

    #dynamicRouteNodes .planet-atmosphere,
    #dynamicRouteNodes .galaxy-ring,
    #dynamicRouteNodes .planet-glow {
        opacity: .45 !important;
    }

    /* =========================================
       STAGE DE CARD FULL WIDTH
    ========================================= */

    #dynamicRouteNodes .aulo-route-card-stage {
        position: relative !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;
        min-height: auto !important;

        margin: 0 !important;
        padding: 0 !important;

        display: block !important;

        overflow: visible !important;

        transform: none !important;

        box-sizing: border-box !important;
    }

    /* =========================================
       CARD MOBILE FULL WIDTH
    ========================================= */

    #dynamicRouteNodes .route-card,
    #dynamicRouteNodes .node-1 .route-card,
    #dynamicRouteNodes .node-2 .route-card,
    #dynamicRouteNodes .node-3 .route-card,
    #dynamicRouteNodes .node-4 .route-card,
    #dynamicRouteNodes .node-5 .route-card,
    #dynamicRouteNodes .node-6 .route-card,
    #dynamicRouteNodes .node-7 .route-card,
    #dynamicRouteNodes .node-8 .route-card,
    #dynamicRouteNodes .node-9 .route-card,
    #dynamicRouteNodes .node-10 .route-card,
    #dynamicRouteNodes .node-11 .route-card,
    #dynamicRouteNodes .node-12 .route-card,
    #dynamicRouteNodes .node-13 .route-card,
    #dynamicRouteNodes .node-14 .route-card,
    #dynamicRouteNodes .node-15 .route-card,
    #dynamicRouteNodes .node-16 .route-card,
    #dynamicRouteNodes .node-17 .route-card,
    #dynamicRouteNodes .node-18 .route-card,
    #dynamicRouteNodes .node-19 .route-card,
    #dynamicRouteNodes .node-20 .route-card {
        position: relative !important;

        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        height: auto !important;
        min-height: 132px !important;

        margin: 0 !important;
        padding: 18px 16px 16px 82px !important;

        transform: none !important;

        opacity: 1 !important;
        visibility: visible !important;

        z-index: 30 !important;

        pointer-events: auto !important;

        border-radius: 26px !important;

        overflow: hidden !important;

        background:
            radial-gradient(
                circle at top left,
                rgba(56, 189, 248, .20),
                transparent 38%
            ),
            linear-gradient(
                180deg,
                rgba(15, 23, 42, .88),
                rgba(2, 6, 23, .96)
            ) !important;

        border: 1px solid rgba(125, 211, 252, .22) !important;

        box-shadow:
            0 18px 54px rgba(0, 0, 0, .42),
            inset 0 1px 0 rgba(255, 255, 255, .08) !important;

        backdrop-filter: blur(22px) saturate(150%) !important;
        -webkit-backdrop-filter: blur(22px) saturate(150%) !important;

        box-sizing: border-box !important;
    }

    #dynamicRouteNodes .route-card::after {
        content: "⌄";

        position: absolute;
        top: 18px;
        right: 16px;

        width: 34px;
        height: 34px;

        display: flex;
        align-items: center;
        justify-content: center;

        border-radius: 50%;

        color: #c4b5fd;
        font-size: 18px;
        font-weight: 900;

        background: rgba(255, 255, 255, .045);
        border: 1px solid rgba(196, 181, 253, .22);
    }

    #dynamicRouteNodes .tree-block.mobile-expanded .route-card::after {
        content: "⌃";
    }

    /* =========================================
       CONTENIDO INTERNO
    ========================================= */

    #dynamicRouteNodes .route-content {
        position: relative !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;

        padding: 0 !important;
        margin: 0 !important;

        display: flex !important;
        flex-direction: column !important;

        transform: none !important;

        box-sizing: border-box !important;
    }

    #dynamicRouteNodes .route-topline {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;

        gap: 6px !important;

        padding-right: 42px !important;
        margin: 0 0 8px 0 !important;
    }

    #dynamicRouteNodes .route-number {
        font-size: 11px !important;
        letter-spacing: .15em !important;
        color: #38bdf8 !important;
    }

    #dynamicRouteNodes .route-type {
        font-size: 14px !important;
        letter-spacing: .12em !important;

        padding: 12px 10px !important;

        border-radius: 999px !important;

        color: #c4b5fd !important;

        background: rgba(139, 92, 246, .14) !important;
        border: 1px solid rgba(139, 92, 246, .22) !important;
    }

    #dynamicRouteNodes .route-card h3 {
        max-width: calc(100% - 36px) !important;

        margin: 0 0 5px 0 !important;

        font-size: 17px !important;
        line-height: 1.15 !important;
        letter-spacing: .08em !important;

        color: #ffffff !important;
    }

    #dynamicRouteNodes .route-card p {
        max-width: calc(100% - 20px) !important;

        margin: 0 0 12px 0 !important;

        font-size: 12px !important;
        line-height: 1.4 !important;

        color: #93c5fd !important;
    }

    #dynamicRouteNodes .route-meta {
        display: flex !important;
        gap: 8px !important;
        flex-wrap: wrap !important;

        margin: 0 0 12px 0 !important;
    }

    #dynamicRouteNodes .route-meta span {
        font-size: 14px !important;
        font-weight: 900 !important;
        letter-spacing: .08em !important;

        padding: 6px 9px !important;

        border-radius: 999px !important;

        color: #bae6fd !important;
        background: rgba(14, 165, 233, .11) !important;
        border: 1px solid rgba(56, 189, 248, .20) !important;
    }

    /* =========================================
       PROGRESS
    ========================================= */

    #dynamicRouteNodes .route-difficulty-progress {
        width: 100% !important;
        margin: 0 !important;
    }

    #dynamicRouteNodes .route-progress-label {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;

        margin-bottom: 6px !important;
    }

    #dynamicRouteNodes .route-progress-label span {
        font-size: 9px !important;
        color: #94a3b8 !important;
        letter-spacing: .14em !important;
    }

    #dynamicRouteNodes .route-progress-label strong {
        font-size: 11px !important;
        color: #67e8f9 !important;
    }

    #dynamicRouteNodes .route-progress {
        width: 100% !important;
        height: 7px !important;

        border-radius: 999px !important;

        background: rgba(148, 163, 184, .15) !important;

        overflow: hidden !important;
    }

    #dynamicRouteNodes .route-progress span {
        display: block !important;

        height: 100% !important;

        border-radius: inherit !important;

        background:
            linear-gradient(
                90deg,
                #22d3ee,
                #3b82f6,
                #8b5cf6
            ) !important;
    }

    /* =========================================
       CERRADO
    ========================================= */

    #dynamicRouteNodes .route-stats,
    #dynamicRouteNodes .route-mission,
    #dynamicRouteNodes .route-reward,
    #dynamicRouteNodes .route-cta {
        display: none !important;
    }

    /* =========================================
       ABIERTO
    ========================================= */

    #dynamicRouteNodes .tree-block.mobile-expanded .route-card {
        min-height: 360px !important;
        padding-bottom: 18px !important;

        border-color: rgba(125, 211, 252, .36) !important;

        box-shadow:
            0 22px 68px rgba(0, 0, 0, .52),
            0 0 36px rgba(56, 189, 248, .14),
            inset 0 1px 0 rgba(255, 255, 255, .10) !important;
    }

    #dynamicRouteNodes .tree-block.mobile-expanded .route-stats {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 8px !important;

        margin: 16px 0 12px 0 !important;
    }

    #dynamicRouteNodes .tree-block.mobile-expanded .route-stats span {
        min-height: 58px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;

        padding: 8px 6px !important;

        border-radius: 18px !important;

        font-size: 9px !important;
        line-height: 1.25 !important;
        font-weight: 900 !important;

        color: #dbeafe !important;

        background: rgba(15, 23, 42, .68) !important;
        border: 1px solid rgba(125, 211, 252, .16) !important;
    }

    #dynamicRouteNodes .tree-block.mobile-expanded .route-mission {
        display: block !important;

        margin: 12px 0 !important;
        padding: 14px !important;

        border-radius: 18px !important;

        font-size: 12px !important;
        line-height: 1.5 !important;

        color: #dbeafe !important;

        background:
            radial-gradient(
                circle at bottom left,
                rgba(56, 189, 248, .16),
                transparent 60%
            ),
            rgba(255, 255, 255, .045) !important;

        border: 1px solid rgba(125, 211, 252, .14) !important;
    }

    #dynamicRouteNodes .tree-block.mobile-expanded .route-reward {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        margin: 0 0 14px 0 !important;
        padding: 10px 12px !important;

        border-radius: 16px !important;

        background: rgba(139, 92, 246, .10) !important;
        border: 1px solid rgba(139, 92, 246, .20) !important;
    }

    #dynamicRouteNodes .tree-block.mobile-expanded .route-cta {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 100% !important;
        min-height: 35px !important;

        border-radius: 16px !important;

        font-size: 11px !important;
        font-weight: 900 !important;
        letter-spacing: .10em !important;

        color: #ffffff !important;

        background:
            linear-gradient(
                135deg,
                #22d3ee,
                #3b82f6,
                #a855f7
            ) !important;

        border: none !important;
    }
}

/* =========================================================
   ROUTE CARD · COVER IMAGE REVEAL MODE
   Capa visual primero, info después
========================================================= */

#dynamicRouteNodes .route-card {
    position: relative !important;
    overflow: hidden !important;
    cursor: pointer !important;
}

/* =========================================
   CAPA PORTADA / IMAGEN
========================================= */

#dynamicRouteNodes .route-card .route-overlay {
    position: absolute !important;
    inset: 0 !important;

    z-index: 40 !important;

    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;

    padding: 28px !important;

    opacity: 1 !important;
    visibility: visible !important;

    pointer-events: none !important;

    background:
        radial-gradient(
            circle at 72% 28%,
            rgba(56, 189, 248, .95),
            rgba(8, 47, 73, .35) 20%,
            transparent 42%
        ),
        radial-gradient(
            circle at 22% 78%,
            rgba(139, 92, 246, .55),
            transparent 42%
        ),
        linear-gradient(
            135deg,
            rgba(8, 145, 178, .50),
            rgba(2, 6, 23, .96) 68%
        ) !important;

    backdrop-filter: blur(3px) saturate(145%) !important;
    -webkit-backdrop-filter: blur(3px) saturate(145%) !important;

    transition:
        opacity .45s ease,
        visibility .45s ease,
        transform .55s ease,
        filter .45s ease !important;
}

/* Quitar planeta CSS cuando usamos imagen real */
#dynamicRouteNodes .route-card .route-overlay::after {
    display: none !important;
}

/* Brillo tipo planeta */
#dynamicRouteNodes .route-card .route-overlay::after {
    content: "";

    position: absolute;
    top: 36px;
    right: 46px;

    width: 128px;
    height: 128px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle at 35% 28%,
            rgba(255, 255, 255, .45),
            rgba(103, 232, 249, .85) 18%,
            rgba(14, 116, 144, .55) 52%,
            rgba(2, 6, 23, .20) 100%
        );

    box-shadow:
        0 0 34px rgba(56, 189, 248, .35),
        0 0 90px rgba(14, 165, 233, .18);

    opacity: .95;
}


/* =========================================
   IMAGENES CARDS
========================================= */

#dynamicRouteNodes .node-1 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-01.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-2 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-02.png') center / cover no-repeat !important;
}


#dynamicRouteNodes .node-3 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-03.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-4 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-04.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-5 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-05.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-6 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-06.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-7 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-06.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-8 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-06.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-9 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-09.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-10 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-10.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-11 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-11.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-12 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-12.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-13 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-13.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-14 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-14.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-15 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-15.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-16 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-16.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-17 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-17.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-18 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-18.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-19 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-19.png') center / cover no-repeat !important;
}

#dynamicRouteNodes .node-20 .route-card .route-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(2, 6, 23, .15),
            rgba(2, 6, 23, .88)
        ),
        url('/store/1/default_images/banners/CARD-20.png') center / cover no-repeat !important;
}

/* =========================================
   INFO OCULTA ANTES DE REVELAR
========================================= */

#dynamicRouteNodes .route-card .route-content {
    position: relative !important;
    z-index: 20 !important;

    opacity: 0 !important;
    transform: translateY(18px) !important;

    transition:
        opacity .42s ease,
        transform .42s ease !important;
}

/* =========================================
   REVELAR INFO
   Desktop: hover
   Mobile: clase .mobile-expanded
========================================= */

#dynamicRouteNodes .tree-block:hover .route-card .route-overlay,
#dynamicRouteNodes .tree-block.mobile-expanded .route-card .route-overlay {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: scale(1.04) !important;
    filter: blur(8px) !important;
}

#dynamicRouteNodes .tree-block:hover .route-card .route-content,
#dynamicRouteNodes .tree-block.mobile-expanded .route-card .route-content {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* =========================================
   MOBILE AJUSTE FINO
========================================= */

@media (max-width: 640px) {

    #dynamicRouteNodes .route-card .route-overlay {
        padding: 22px !important;
    }

    #dynamicRouteNodes .route-card .route-overlay::after {
        width: 96px !important;
        height: 96px !important;

        top: 28px !important;
        right: 28px !important;
    }

    #dynamicRouteNodes .route-card .route-overlay::before {
        font-size: 11px !important;
        padding: 10px 14px !important;
        letter-spacing: .12em !important;
    }
}

/* =========================================================
   MOBILE ROUTE CARD · CENTRAR TODA LA INFO
========================================================= */

@media (max-width: 640px) {

    #dynamicRouteNodes .route-card {
        text-align: center !important;
    }

    #dynamicRouteNodes .route-content {
        display: flex !important;
        flex-direction: column !important;

        align-items: center !important;
        justify-content: center !important;

        text-align: center !important;

        width: 100% !important;
        max-width: 100% !important;
    }

    #dynamicRouteNodes .route-topline {
        width: 100% !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        text-align: center !important;

        gap: 8px !important;

        padding-right: 42px !important;
        padding-left: 42px !important;
    }

    #dynamicRouteNodes .route-number,
    #dynamicRouteNodes .route-type {
        text-align: center !important;
    }

    #dynamicRouteNodes .route-card h3,
    #dynamicRouteNodes .route-card p {
        width: 100% !important;
        max-width: 100% !important;

        text-align: center !important;

        margin-left: auto !important;
        margin-right: auto !important;
    }

    #dynamicRouteNodes .route-meta,
    #dynamicRouteNodes .route-stats {
        width: 100% !important;

        display: flex !important;
        flex-wrap: wrap !important;

        justify-content: center !important;
        align-items: center !important;

        text-align: center !important;

        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    #dynamicRouteNodes .route-meta span,
    #dynamicRouteNodes .route-stats span {
        text-align: center !important;
        justify-content: center !important;
        align-items: center !important;
    }

    #dynamicRouteNodes .route-mission {
        width: 100% !important;
        max-width: 100% !important;

        text-align: center !important;

        margin-left: auto !important;
        margin-right: auto !important;
    }

    #dynamicRouteNodes .route-reward {
        width: 100% !important;

        display: flex !important;
        flex-direction: column !important;

        align-items: center !important;
        justify-content: center !important;

        text-align: center !important;

        gap: 4px !important;

        margin-left: auto !important;
        margin-right: auto !important;
    }

    #dynamicRouteNodes .route-reward small,
    #dynamicRouteNodes .route-reward strong {
        text-align: center !important;
    }

    

    #dynamicRouteNodes .route-progress-label {
        width: 100% !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        gap: 12px !important;

        text-align: center !important;
    }

    #dynamicRouteNodes .route-progress {
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    #dynamicRouteNodes .route-cta {
        width: 100% !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        text-align: center !important;

        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* =========================================================
   UNIVERSE HINT · OCULTO EN MOBILE
========================================================= */

@media (max-width: 768px) {

    .universe-hint {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

/* =========================================================
   UNIVERSE THEME TOGGLE · OCULTO EN MOBILE
========================================================= */

@media (max-width: 768px) {

    .universe-theme-toggle {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}
/* =========================================================
   CALL AULO ROBOT BTN · MOBILE ICON CINEMATIC MODE
   Solo ícono · outline pulsante · llamar / ocultar Sam
========================================================= */

@media (max-width: 768px) {

    #callAuloRobotBtn.call-aulo-robot-btn {
        position: fixed !important;

        right: 18px !important;
        bottom: 104px !important;
        left: auto !important;
        top: auto !important;

        width: 68px !important;
        height: 68px !important;

        min-width: 68px !important;
        max-width: 68px !important;
        min-height: 68px !important;
        max-height: 68px !important;

        padding: 0 !important;
        margin: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        border-radius: 50% !important;

        font-size: 0 !important;
        line-height: 1 !important;

        color: transparent !important;

        cursor: pointer !important;

        z-index: 100000000 !important;

        overflow: visible !important;

        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;

        background:
            radial-gradient(
                circle at center,
                rgba(34, 211, 238, .12),
                rgba(15, 23, 42, .86) 58%,
                rgba(2, 6, 23, .98) 100%
            ) !important;

        border: 1px solid rgba(103, 232, 249, .62) !important;

        box-shadow:
            0 0 20px rgba(34, 211, 238, .36),
            0 0 46px rgba(59, 130, 246, .24),
            0 0 86px rgba(139, 92, 246, .14),
            inset 0 1px 0 rgba(255, 255, 255, .14),
            inset 0 0 18px rgba(34, 211, 238, .10) !important;

        backdrop-filter: blur(18px) saturate(150%) !important;
        -webkit-backdrop-filter: blur(18px) saturate(150%) !important;

        transform: translateY(0) scale(1) !important;

        animation:
            samMobilePulse 2.4s ease-in-out infinite,
            samMobileFloat 4.6s ease-in-out infinite !important;

        transition:
            transform .28s ease,
            border-color .28s ease,
            box-shadow .28s ease,
            background .28s ease !important;
    }

    /* Ícono principal */
    #callAuloRobotBtn.call-aulo-robot-btn::before {
        content: "🤖";

        width: 100%;
        height: 100%;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        font-size: 33px !important;
        line-height: 1 !important;

        color: #ffffff !important;

        filter:
            drop-shadow(0 0 8px rgba(255, 255, 255, .72))
            drop-shadow(0 0 18px rgba(34, 211, 238, .72))
            drop-shadow(0 0 34px rgba(139, 92, 246, .48));

        z-index: 3 !important;
    }

    /* Anillo exterior */
    #callAuloRobotBtn.call-aulo-robot-btn::after {
        content: "";

        position: absolute;
        inset: -6px;

        border-radius: 50%;

        border: 1px solid rgba(103, 232, 249, .30);

        box-shadow:
            0 0 18px rgba(34, 211, 238, .28),
            inset 0 0 18px rgba(34, 211, 238, .10);

        opacity: .85;

        pointer-events: none !important;

        animation: samMobileRing 2.4s ease-in-out infinite;
    }

    /* Hover / touch */
    #callAuloRobotBtn.call-aulo-robot-btn:hover,
    #callAuloRobotBtn.call-aulo-robot-btn:active {
        transform: translateY(-3px) scale(1.06) !important;

        border-color: rgba(103, 232, 249, .95) !important;

        box-shadow:
            0 0 26px rgba(34, 211, 238, .58),
            0 0 64px rgba(59, 130, 246, .34),
            0 0 110px rgba(139, 92, 246, .20),
            inset 0 1px 0 rgba(255, 255, 255, .18),
            inset 0 0 22px rgba(34, 211, 238, .16) !important;
    }

    /* Estado cuando Sam está visible */
    #callAuloRobotBtn.call-aulo-robot-btn.sam-visible {
        border-color: rgba(248, 113, 113, .68) !important;

        background:
            radial-gradient(
                circle at center,
                rgba(239, 68, 68, .16),
                rgba(15, 23, 42, .88) 58%,
                rgba(2, 6, 23, .98) 100%
            ) !important;

        box-shadow:
            0 0 22px rgba(248, 113, 113, .38),
            0 0 50px rgba(239, 68, 68, .24),
            0 0 88px rgba(139, 92, 246, .12),
            inset 0 1px 0 rgba(255, 255, 255, .14),
            inset 0 0 18px rgba(239, 68, 68, .12) !important;
    }

    #callAuloRobotBtn.call-aulo-robot-btn.sam-visible::before {
        content: "👋";

        font-size: 32px !important;

        filter:
            drop-shadow(0 0 8px rgba(255, 255, 255, .74))
            drop-shadow(0 0 18px rgba(248, 113, 113, .68))
            drop-shadow(0 0 34px rgba(239, 68, 68, .45));
    }
}

/* =========================================================
   ANIMACIONES SAM MOBILE
========================================================= */

@keyframes samMobilePulse {
    0%, 100% {
        box-shadow:
            0 0 20px rgba(34, 211, 238, .34),
            0 0 46px rgba(59, 130, 246, .22),
            0 0 86px rgba(139, 92, 246, .12),
            inset 0 1px 0 rgba(255, 255, 255, .14),
            inset 0 0 18px rgba(34, 211, 238, .10);
    }

    50% {
        box-shadow:
            0 0 30px rgba(34, 211, 238, .66),
            0 0 72px rgba(59, 130, 246, .36),
            0 0 124px rgba(139, 92, 246, .20),
            inset 0 1px 0 rgba(255, 255, 255, .18),
            inset 0 0 24px rgba(34, 211, 238, .16);
    }
}

@keyframes samMobileRing {
    0%, 100% {
        transform: scale(.92);
        opacity: .42;
    }

    50% {
        transform: scale(1.14);
        opacity: 1;
    }
}

@keyframes samMobileFloat {
    0%, 100% {
        translate: 0 0;
    }

    50% {
        translate: 0 -4px;
    }
}

/* =========================================================
   DIFFICULTY PROGRESS · OCULTO EN MOBILE
========================================================= */

@media (max-width: 640px) {

    #dynamicRouteNodes .route-difficulty-progress {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

/* =========================================================
   ROUTE CARD DESCRIPTION · OCULTO EN MOBILE
========================================================= */

@media (max-width: 640px) {

    #dynamicRouteNodes .route-card p {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

/* =========================================================
   MOBILE · NIVEL EN BLOQUE SUPERIOR DERECHO
========================================================= */

@media (max-width: 640px) {

    #dynamicRouteNodes .route-card {
        position: relative !important;
    }

    #dynamicRouteNodes .route-topline {
        position: relative !important;

        width: 100% !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        padding-right: 72px !important;
        padding-left: 0 !important;

        min-height: 76px !important;
    }

    /* Ocultamos el texto original "NIVEL 01" */
    #dynamicRouteNodes .route-number {
        position: absolute !important;

        top: 0 !important;
        left: -50px !important;
        font-size:10px !important;
        width: 95px !important;
        height: 62px !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;

        padding: 5px 6px !important;

        border-radius: 14px !important;

        font-size: 0 !important;
        line-height: 1 !important;

        color: transparent !important;

        background:
            linear-gradient(
                180deg,
                rgba(34, 211, 238, .14),
                rgba(139, 92, 246, .12)
            ) !important;

        border: 1px solid rgba(125, 211, 252, .24) !important;

        box-shadow:
            0 0 16px rgba(34, 211, 238, .12),
            inset 0 1px 0 rgba(255, 255, 255, .08) !important;
    }

    #dynamicRouteNodes .route-number::before {
        content: "NIVEL";

        display: block !important;

        font-size: 20px !important;
        line-height: 1 !important;
        font-weight: 900 !important;
        letter-spacing: .16em !important;

        color: #67e8f9 !important;

        margin-bottom: 4px !important;
    }

    #dynamicRouteNodes .route-number::after {
        content: "01";

        display: block !important;

        font-size: 17px !important;
        line-height: .9 !important;
        font-weight: 900 !important;
        letter-spacing: .02em !important;

        color: #ffffff !important;

        text-shadow:
            0 0 10px rgba(255, 255, 255, .48),
            0 0 18px rgba(34, 211, 238, .38);
    }

    /* El chip AI CORE queda centrado */
    #dynamicRouteNodes .route-type {
        margin-left: 90px !important;
        margin-right: auto !important;
    }
}

@media (max-width: 640px) {

    #dynamicRouteNodes .node-1 .route-number::after { content: "01"; }
    #dynamicRouteNodes .node-2 .route-number::after { content: "02"; }
    #dynamicRouteNodes .node-3 .route-number::after { content: "03"; }
    #dynamicRouteNodes .node-4 .route-number::after { content: "04"; }
    #dynamicRouteNodes .node-5 .route-number::after { content: "05"; }
    #dynamicRouteNodes .node-6 .route-number::after { content: "06"; }
    #dynamicRouteNodes .node-7 .route-number::after { content: "07"; }
    #dynamicRouteNodes .node-8 .route-number::after { content: "08"; }
    #dynamicRouteNodes .node-9 .route-number::after { content: "09"; }
    #dynamicRouteNodes .node-10 .route-number::after { content: "10"; }
    #dynamicRouteNodes .node-11 .route-number::after { content: "11"; }
    #dynamicRouteNodes .node-12 .route-number::after { content: "12"; }
    #dynamicRouteNodes .node-13 .route-number::after { content: "13"; }
    #dynamicRouteNodes .node-14 .route-number::after { content: "14"; }
    #dynamicRouteNodes .node-15 .route-number::after { content: "15"; }
    #dynamicRouteNodes .node-16 .route-number::after { content: "16"; }
    #dynamicRouteNodes .node-17 .route-number::after { content: "17"; }
    #dynamicRouteNodes .node-18 .route-number::after { content: "18"; }
    #dynamicRouteNodes .node-19 .route-number::after { content: "19"; }
    #dynamicRouteNodes .node-20 .route-number::after { content: "20"; }
}
/* =========================================================
   MOBILE PERFECT
========================================================= */

@media (max-width: 640px) {

    .ai-core-react-engine {
        width: calc(100vw - 24px) !important;
        max-width: calc(85vw - 24px) !important;

        margin: 0 auto !important;
        padding: 34px 18px !important;

        min-height: auto !important;

        border-radius: 24px !important;

        text-align: center !important;

        overflow: hidden !important;

        background:
            radial-gradient(
                circle at top,
                rgba(34, 211, 238, .18),
                transparent 38%
            ),
            radial-gradient(
                circle at bottom right,
                rgba(139, 92, 246, .18),
                transparent 42%
            ),
            linear-gradient(
                180deg,
                rgba(15, 23, 42, .92),
                rgba(2, 6, 23, .98)
            ) !important;

        box-shadow:
            0 18px 54px rgba(0, 0, 0, .46),
            0 0 30px rgba(34, 211, 238, .12),
            inset 0 1px 0 rgba(255, 255, 255, .08) !important;
    }

    .ai-core-react-engine::after {
        top: -90px !important;
        right: -90px !important;

        width: 190px !important;
        height: 190px !important;

        opacity: .75 !important;
    }
}

@media (max-width: 640px) {

    .ai-core-react-engine h1,
    .ai-core-react-engine h2,
    .ai-core-react-engine h3 {
        font-size: 24px !important;
        line-height: 1.15 !important;
        letter-spacing: .06em !important;
    }

    .ai-core-react-engine p {
        font-size: 13px !important;
        line-height: 1.45 !important;
    }
}

/* =========================================================
   IA CLOSE BUTTON · MOBILE
========================================================= */

@media (max-width: 640px) {

    .ia-close {
        top: 14px !important;
        right: 14px !important;

        width: 38px !important;
        height: 38px !important;

        min-width: 38px !important;
        min-height: 38px !important;

        font-size: 18px !important;

        border-radius: 50% !important;

        background:
            radial-gradient(
                circle at center,
                rgba(239, 68, 68, .20),
                rgba(15, 23, 42, .76)
            ) !important;

        border: 1px solid rgba(255, 255, 255, .14) !important;

        box-shadow:
            0 0 18px rgba(239, 68, 68, .18),
            0 0 28px rgba(34, 211, 238, .10),
            inset 0 1px 0 rgba(255, 255, 255, .10) !important;
    }

    .ia-close:hover,
    .ia-close:active {
        transform: rotate(90deg) scale(1.08) !important;

        color: #ffffff !important;

        background:
            radial-gradient(
                circle at center,
                rgba(239, 68, 68, .34),
                rgba(124, 58, 237, .18) 48%,
                rgba(2, 6, 23, .82) 100%
            ) !important;

        border-color: rgba(248, 113, 113, .42) !important;

        box-shadow:
            0 0 22px rgba(239, 68, 68, .42),
            0 0 42px rgba(124, 58, 237, .22),
            inset 0 0 16px rgba(255, 255, 255, .10) !important;
    }
}

/* =========================================================
   AI MISSION CLOSE · PREMIUM + MOBILE
========================================================= */

.ai-mission-close {
    position: absolute;
    top: 18px;
    right: 18px;

    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    border: 1px solid rgba(255, 255, 255, .14);

    background:
        radial-gradient(
            circle at center,
            rgba(34, 211, 238, .14),
            rgba(15, 23, 42, .70)
        );

    color: #ffffff;

    font-size: 26px;
    line-height: 1;

    cursor: pointer;

    z-index: 999999 !important;

    box-shadow:
        0 0 18px rgba(34, 211, 238, .14),
        inset 0 1px 0 rgba(255, 255, 255, .10);

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);

    transition:
        transform .28s ease,
        background .28s ease,
        color .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}

.ai-mission-close:hover {
    transform: rotate(90deg) scale(1.12);

    color: #67e8f9;

    background:
        radial-gradient(
            circle at center,
            rgba(34, 211, 238, .28),
            rgba(59, 130, 246, .14) 45%,
            rgba(2, 6, 23, .78) 100%
        );

    border-color: rgba(103, 232, 249, .42);

    box-shadow:
        0 0 24px rgba(34, 211, 238, .50),
        0 0 54px rgba(59, 130, 246, .28),
        inset 0 0 18px rgba(34, 211, 238, .18);

    text-shadow:
        0 0 10px rgba(103, 232, 249, .95);
}

/* =========================================================
   AI MISSION CLOSE · MOBILE
========================================================= */

@media (max-width: 640px) {

    .ai-mission-close {
        top: 12px !important;
        right: 12px !important;

        width: 36px !important;
        height: 36px !important;

        min-width: 36px !important;
        min-height: 36px !important;
        max-width: 36px !important;
        max-height: 36px !important;

        font-size: 22px !important;

        border-radius: 50% !important;

        background:
            radial-gradient(
                circle at center,
                rgba(239, 68, 68, .22),
                rgba(15, 23, 42, .82)
            ) !important;

        border: 1px solid rgba(255, 255, 255, .14) !important;

        box-shadow:
            0 0 18px rgba(239, 68, 68, .22),
            0 0 28px rgba(34, 211, 238, .10),
            inset 0 1px 0 rgba(255, 255, 255, .10) !important;

        z-index: 1000000 !important;
    }

    .ai-mission-close:hover,
    .ai-mission-close:active {
        transform: rotate(90deg) scale(1.08) !important;

        color: #ffffff !important;

        background:
            radial-gradient(
                circle at center,
                rgba(239, 68, 68, .36),
                rgba(124, 58, 237, .18) 48%,
                rgba(2, 6, 23, .88) 100%
            ) !important;

        border-color: rgba(248, 113, 113, .42) !important;

        box-shadow:
            0 0 22px rgba(239, 68, 68, .42),
            0 0 42px rgba(124, 58, 237, .22),
            inset 0 0 16px rgba(255, 255, 255, .10) !important;
    }
}

/* =========================================================
   AULÓPOLIS MOBILE SCROLL · FIX DEFINITIVO REAL
   Scroll en toda la pantalla móvil
========================================================= */

@media (max-width: 768px) {

    html,
    body {
        width: 100% !important;
        max-width: 100vw !important;

        height: auto !important;
        min-height: 100% !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        position: relative !important;

        touch-action: pan-y !important;
        overscroll-behavior-y: auto !important;

        background: #020617 !important;
    }

    body.ai-route-page,
    body {
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .ai-route-world {
        position: relative !important;

        width: 100% !important;
        max-width: 100vw !important;

        height: auto !important;
        min-height: auto !important;

        overflow: visible !important;

        transform: none !important;

        touch-action: pan-y !important;

        background: #020617 !important;
    }

    .ai-route-world .universe-wrapper,
    .universe-wrapper {
        position: relative !important;

        width: 100% !important;
        max-width: 100vw !important;

        height: auto !important;
        min-height: auto !important;

        overflow: visible !important;

        transform: none !important;

        cursor: default !important;

        touch-action: pan-y !important;

        -webkit-overflow-scrolling: auto !important;

        box-sizing: border-box !important;
    }

    .ai-route-world .universe-map,
    .universe-map {
        position: relative !important;

        width: 100% !important;
        max-width: 100vw !important;
        min-width: 0 !important;

        height: auto !important;
        min-height: auto !important;

        overflow: visible !important;

        transform: none !important;

        padding: 170px 12px 190px 12px !important;

        box-sizing: border-box !important;

        touch-action: pan-y !important;
    }

    #dynamicRouteNodes {
        position: relative !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;
        min-height: auto !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;

        gap: 16px !important;

        margin: 0 !important;
        padding: 0 0 140px 0 !important;

        overflow: visible !important;

        transform: none !important;

        box-sizing: border-box !important;

        touch-action: pan-y !important;
    }

    #dynamicRouteNodes .tree-block,
    #dynamicRouteNodes .tree-block.left,
    #dynamicRouteNodes .tree-block.right,
    #dynamicRouteNodes .tree-block.center {
        position: relative !important;

        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;
        min-height: auto !important;

        margin: 0 !important;
        padding: 0 !important;

        display: block !important;

        transform: none !important;

        overflow: visible !important;

        box-sizing: border-box !important;

        touch-action: pan-y !important;
    }

    #dynamicRouteNodes .aulo-route-card-stage,
    #dynamicRouteNodes .route-card,
    #dynamicRouteNodes .route-content {
        position: relative !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;

        transform: none !important;

        box-sizing: border-box !important;

        touch-action: pan-y !important;
    }

    #dynamicRouteNodes .route-card {
        pointer-events: auto !important;
    }

    /*
    Capas visuales NO deben capturar el dedo.
    */
    #dynamicRouteNodes .route-overlay,
    #dynamicRouteNodes .route-overlay::before,
    #dynamicRouteNodes .route-overlay::after,
    #dynamicRouteNodes .route-card::before,
    #dynamicRouteNodes .route-card::after,
    #dynamicRouteNodes .city-node,
    #dynamicRouteNodes .planet-core,
    #dynamicRouteNodes .planet-atmosphere,
    #dynamicRouteNodes .galaxy-ring,
    #dynamicRouteNodes .planet-glow {
        pointer-events: none !important;
        touch-action: pan-y !important;
    }

    /*
    Botones reales sí reciben toque.
    */
    #dynamicRouteNodes .route-cta,
    #callAuloRobotBtn,
    .ia-close,
    .ai-mission-close,
    button,
    input,
    textarea,
    select {
        pointer-events: auto !important;
    }
}
/* =========================================================
   MOBILE · MATAR CAPAS INVISIBLES QUE BLOQUEAN SCROLL
========================================================= */

@media (max-width: 768px) {

    #aiTutorPanel:not(.show):not(.open):not(.active),
    .ia-popup.hidden,
    .ia-popup:not(.open),
    .mission-popup:not(.open),
    .lesson-modal.hidden,
    .lesson-overlay.hidden,
    .nexus-search-results.nexus-results-hidden {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    .space-bg,
    .nebula,
    .galaxy,
    .aurora,
    .noise-overlay,
    .grid-floor,
    .stars,
    .mouse-glow,
    .universe-title-bg,
    .universe-bg,
    .universe-grid,
    .universe-stars,
    .universe-glow,
    .route-bg,
    .route-lines,
    .cosmic-lines,
    .nexus-beam {
        pointer-events: none !important;
        touch-action: none !important;
    }
}
/* =====================================================
   OCULTAR ICONO DE MISIÓN — TODAS LAS PANTALLAS
===================================================== */

.ai-mission-icon {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}


/* =========================================
   FIX POPUP IA CORE VISIBLE + SCROLL INTERNO
   Scroll dentro del panel, NO en ventana exterior
========================================= */

#iaCorePopup {
    display: none;

    position: fixed !important;
    inset: 0 !important;

    width: 100vw !important;
    height: 100dvh !important;

    padding: 40px 16px !important;

    overflow: hidden !important; /* IMPORTANTE: afuera NO scrollea */

    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;
}

#iaCorePopup.open,
#iaCorePopup:not(.hidden) {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    z-index: 999999999 !important;
}

/* =========================================
   PANEL INTERNO — AQUÍ VA EL SCROLL
========================================= */

#iaCorePopup .ia-popup-content,
#iaCorePopup .ia-popup-box,
#iaCorePopup .ia-popup-panel,
#iaCorePopup .ia-core-content {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    transform: none !important;

    width: min(920px, 94vw) !important;
    max-width: 94vw !important;

    height: auto !important;
    max-height: calc(100dvh - 80px) !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;

    box-sizing: border-box !important;

    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
}

/* Root React dentro del panel */
#iaCorePopup #ai-game-root {
    display: block !important;

    width: 100% !important;
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;

    overflow: visible !important;

    color: #ffffff !important;
}

/* Wrappers internos React */
#iaCorePopup #ai-game-root > * {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

/* =========================================
   SCROLLBAR SOLO DEL PANEL INTERNO
========================================= */

#iaCorePopup .ia-popup-content::-webkit-scrollbar,
#iaCorePopup .ia-popup-box::-webkit-scrollbar,
#iaCorePopup .ia-popup-panel::-webkit-scrollbar,
#iaCorePopup .ia-core-content::-webkit-scrollbar {
    width: 8px !important;
}

#iaCorePopup .ia-popup-content::-webkit-scrollbar-track,
#iaCorePopup .ia-popup-box::-webkit-scrollbar-track,
#iaCorePopup .ia-popup-panel::-webkit-scrollbar-track,
#iaCorePopup .ia-core-content::-webkit-scrollbar-track {
    background: rgba(255,255,255,.05) !important;
    border-radius: 20px !important;
}

#iaCorePopup .ia-popup-content::-webkit-scrollbar-thumb,
#iaCorePopup .ia-popup-box::-webkit-scrollbar-thumb,
#iaCorePopup .ia-popup-panel::-webkit-scrollbar-thumb,
#iaCorePopup .ia-core-content::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #00eaff, #4fffd2) !important;
    border-radius: 20px !important;
}

#iaCorePopup .ia-popup-content,
#iaCorePopup .ia-popup-box,
#iaCorePopup .ia-popup-panel,
#iaCorePopup .ia-core-content {
    scrollbar-width: thin !important;
    scrollbar-color: rgba(0,234,255,.65) rgba(255,255,255,.06) !important;
}

/* MOBILE */
@media (max-width: 640px) {

    #iaCorePopup {
        padding: 18px 10px !important;
        align-items: center !important;
        overflow: hidden !important;
    }

    #iaCorePopup .ia-popup-content,
    #iaCorePopup .ia-popup-box,
    #iaCorePopup .ia-popup-panel,
    #iaCorePopup .ia-core-content {
        width: 96vw !important;
        max-width: 96vw !important;
        max-height: calc(100dvh - 36px) !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;
    }
}

/* =========================================
   AULÓPOLIS ENTERPRISE PREMIUM SECTION
========================================= */

.aulopolis-enterprise-section {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 56px;
    align-items: center;
    padding: 110px 7%;
    background:
        radial-gradient(circle at 12% 20%, rgba(124, 58, 237, 0.22), transparent 32%),
        radial-gradient(circle at 88% 16%, rgba(34, 211, 238, 0.16), transparent 30%),
        linear-gradient(135deg, #050816 0%, #0a1024 45%, #020617 100%);
    color: #f8fafc;
    isolation: isolate;
}

.aulopolis-enterprise-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,0.7), transparent 85%);
    pointer-events: none;
    z-index: -2;
}

.enterprise-bg-orb {
    position: absolute;
    width: 420px;
    height: 420px;
    border-radius: 999px;
    filter: blur(90px);
    opacity: 0.36;
    z-index: -1;
}

.orb-one {
    left: -130px;
    top: 90px;
    background: #7c3aed;
}

.orb-two {
    right: -120px;
    bottom: 80px;
    background: #22d3ee;
}

.enterprise-content {
    max-width: 640px;
}

.enterprise-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 22px;
    padding: 9px 14px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.72);
    color: #93c5fd;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    backdrop-filter: blur(18px);
}

.enterprise-kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #22c55e;
    box-shadow: 0 0 18px rgba(34, 197, 94, 0.9);
}

.enterprise-content h2 {
    margin: 0;
    max-width: 720px;
    font-size: clamp(42px, 5vw, 72px);
    line-height: 0.95;
    letter-spacing: -0.06em;
    font-weight: 900;
    color: #ffffff;
}

.enterprise-lead {
    margin: 26px 0 0;
    max-width: 590px;
    color: #cbd5e1;
    font-size: 18px;
    line-height: 1.75;
}

.enterprise-feature-list {
    display: grid;
    gap: 14px;
    margin-top: 34px;
}

.enterprise-feature {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 16px;
    padding: 18px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.82), rgba(30, 41, 59, 0.42));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

.enterprise-feature > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 15px;
    background: rgba(124, 58, 237, 0.18);
    color: #c4b5fd;
    font-size: 13px;
    font-weight: 900;
}

.enterprise-feature h4 {
    margin: 0 0 6px;
    font-size: 16px;
    font-weight: 800;
    color: #ffffff;
}

.enterprise-feature p {
    margin: 0;
    color: #94a3b8;
    font-size: 14px;
    line-height: 1.6;
}

.enterprise-actions {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 36px;
}

.enterprise-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 56px;
    padding: 0 24px;
    border-radius: 999px;
    background: linear-gradient(135deg, #ffffff, #c7d2fe);
    color: #020617;
    font-size: 15px;
    font-weight: 900;
    text-decoration: none;
    box-shadow:
        0 18px 48px rgba(59, 130, 246, 0.28),
        inset 0 1px 0 rgba(255,255,255,0.95);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.enterprise-btn:hover {
    transform: translateY(-2px);
    box-shadow:
        0 24px 70px rgba(59, 130, 246, 0.42),
        inset 0 1px 0 rgba(255,255,255,0.95);
}

.enterprise-btn span {
    font-size: 20px;
    transition: transform 0.25s ease;
}

.enterprise-btn:hover span {
    transform: translateX(4px);
}

.enterprise-trust-note {
    max-width: 320px;
    color: #94a3b8;
    font-size: 13px;
    line-height: 1.55;
}

.enterprise-trust-note strong {
    color: #e2e8f0;
}

/* Dashboard */

.enterprise-dashboard {
    position: relative;
    padding: 24px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 34px;
    background:
        linear-gradient(180deg, rgba(15, 23, 42, 0.92), rgba(2, 6, 23, 0.9)),
        radial-gradient(circle at top right, rgba(124, 58, 237, 0.22), transparent 40%);
    box-shadow:
        0 40px 120px rgba(0,0,0,0.55),
        inset 0 1px 0 rgba(255,255,255,0.08);
    backdrop-filter: blur(24px);
}

.enterprise-dashboard::before {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: 33px;
    border: 1px solid rgba(255,255,255,0.04);
    pointer-events: none;
}

.dashboard-topbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 22px;
}

.dashboard-label {
    color: #60a5fa;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.dashboard-topbar h3 {
    margin: 6px 0 0;
    color: #ffffff;
    font-size: 24px;
    letter-spacing: -0.04em;
}

.dashboard-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid rgba(34, 197, 94, 0.24);
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.08);
    color: #86efac;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.dashboard-status span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 18px rgba(34, 197, 94, 0.95);
}

.enterprise-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.enterprise-metric-card {
    display: flex;
    gap: 12px;
    align-items: center;
    min-height: 96px;
    padding: 16px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 22px;
    background: rgba(15, 23, 42, 0.74);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

.metric-icon {
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 15px;
    background:
        linear-gradient(135deg, rgba(124, 58, 237, 0.35), rgba(34, 211, 238, 0.18));
    font-size: 18px;
}

.enterprise-metric-card span {
    display: block;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 700;
}

.enterprise-metric-card strong {
    display: block;
    margin-top: 5px;
    color: #ffffff;
    font-size: 26px;
    line-height: 1;
    letter-spacing: -0.04em;
}

/* Panels Preview */

.enterprise-panels-preview {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 14px;
    margin-top: 14px;
}

.panel-preview-card {
    padding: 18px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.86), rgba(15, 23, 42, 0.48));
}

.preview-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
}

.preview-header span {
    color: #ffffff;
    font-size: 14px;
    font-weight: 900;
}

.preview-header small {
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(59, 130, 246, 0.12);
    color: #93c5fd;
    font-size: 11px;
    font-weight: 800;
}

.preview-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    border-top: 1px solid rgba(148, 163, 184, 0.12);
    color: #94a3b8;
    font-size: 13px;
}

.preview-row.active {
    color: #e2e8f0;
}

.preview-row strong {
    color: #ffffff;
}

.learning-path-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    margin: 24px 0;
}

.learning-path-line::before {
    content: "";
    position: absolute;
    left: 18px;
    right: 18px;
    height: 2px;
    background: linear-gradient(90deg, #8b5cf6 0%, #22d3ee 62%, rgba(148,163,184,0.24) 62%);
    z-index: 0;
}

.path-node {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    background: #0f172a;
    color: #94a3b8;
    font-size: 11px;
    font-weight: 900;
}

.path-node.completed {
    background: linear-gradient(135deg, #7c3aed, #2563eb);
    color: #ffffff;
    border-color: transparent;
}

.path-node.active {
    background: linear-gradient(135deg, #22d3ee, #2563eb);
    color: #ffffff;
    border-color: transparent;
    box-shadow: 0 0 28px rgba(34, 211, 238, 0.32);
}

.rank-card {
    padding: 14px;
    border-radius: 18px;
    background: rgba(124, 58, 237, 0.12);
    border: 1px solid rgba(167, 139, 250, 0.18);
}

.rank-card span,
.rank-card small {
    display: block;
    color: #c4b5fd;
    font-size: 12px;
    font-weight: 800;
}

.rank-card strong {
    display: block;
    margin: 6px 0;
    color: #ffffff;
    font-size: 34px;
    line-height: 1;
}

/* Charts */

.enterprise-charts {
    display: grid;
    grid-template-columns: 1.25fr 0.75fr;
    gap: 14px;
    margin-top: 14px;
}

.enterprise-chart-card {
    min-height: 280px;
    padding: 18px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 24px;
    background: rgba(15, 23, 42, 0.72);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

.chart-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 18px;
}

.chart-header h3 {
    margin: 0;
    color: #ffffff;
    font-size: 15px;
    font-weight: 900;
}

.chart-header span {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.chart-header em {
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.1);
    color: #86efac;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
}

.enterprise-chart-card canvas {
    width: 100% !important;
    max-height: 220px;
}

.donut-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: center;
}

.enterprise-donut-card canvas {
    max-height: 160px;
}

.donut-legend {
    display: grid;
    gap: 8px;
}

.donut-legend div {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #cbd5e1;
    font-size: 12px;
    font-weight: 700;
}

.donut-legend span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--c);
    box-shadow: 0 0 14px var(--c);
}

.enterprise-bottom-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 14px;
}

.enterprise-bottom-strip div {
    padding: 14px 16px;
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 20px;
    background: rgba(2, 6, 23, 0.48);
}

.enterprise-bottom-strip span {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.enterprise-bottom-strip strong {
    display: block;
    margin-top: 5px;
    color: #ffffff;
    font-size: 15px;
}

/* Responsive */

@media (max-width: 1180px) {
    .aulopolis-enterprise-section {
        grid-template-columns: 1fr;
    }

    .enterprise-content {
        max-width: 860px;
    }
}

@media (max-width: 768px) {
    .aulopolis-enterprise-section {
        padding: 72px 20px;
    }

    .enterprise-metrics,
    .enterprise-panels-preview,
    .enterprise-charts,
    .enterprise-bottom-strip {
        grid-template-columns: 1fr;
    }

    .dashboard-topbar {
        flex-direction: column;
    }

    .enterprise-dashboard {
        padding: 18px;
        border-radius: 28px;
    }

    .enterprise-content h2 {
        font-size: 40px;
    }
}

body:not(.modal-open) .modal {
    display: none !important;
}
.modal-backdrop {
    z-index: 1040 !important;
}
.modal {
    z-index: 1050 !important;
}

/* =========================================
   THE END
========================================= */